当前位置: 首页 > wzjs >正文

杭州做网站公司自动推广工具

杭州做网站公司,自动推广工具,建设网站的获客渠道,网站app开发费用目录 1、索引数据结构:B-树 2、索引类型 2.1 单字段索引 2.2 复合索引(最重要!) 2.3 多键索引(数组字段) 2.4 地理空间索引 2.5 全文索引 2.6 哈希索引(分片专用) 2.7 TTL …

目录

1、索引数据结构:B-树

2、索引类型

2.1 单字段索引

2.2 复合索引(最重要!)

2.3 多键索引(数组字段)

2.4 地理空间索引

2.5 全文索引

2.6 哈希索引(分片专用)

2.7 TTL 索引(自动过期)

3、索引管理操作

3.1 创建索引

3.2 查看索引

3.3 删除索引

3.4 修改索引(隐藏/重建)

4、explain分析执行计划

5、慢查询分析

5.1 开启慢查询记录

5.2 慢查询日志分析


1、索引数据结构:B-树

MongoDB使用B-树,所有节点都有Data域,只要找到指定索引就可以进⾏访问,单次查询从结构上来看要快于MySql。

2、索引类型

2.1 单字段索引

// 创建:在 age 字段升序索引
db.users.createIndex({ age: 1 }) 
  • 适用:等值查询、范围扫描(age: 25 或 age: { $gt: 30 }

2.2 复合索引(最重要!)

// 创建:先按 city 排序,再按 age 排序
db.users.createIndex({ city: 1, age: -1 })
  • 最左前缀原则
    ✅ 有效查询:{ city: "北京" }{ city: "上海", age: { $lt: 30 } }
    ❌ 无效查询:{ age: 25 }(无法命中索引)

2.3 多键索引(数组字段)

// tags 是数组字段:["sports", "music"]
db.products.createIndex({ tags: 1 })
  • 行为:为数组中的 每个元素 创建独立索引项

  • 限制:复合索引中 最多一个数组字段

2.4 地理空间索引

// 2dsphere 索引(地球球面坐标)
db.places.createIndex({ loc: "2dsphere" })

查询示例:

db.places.find({loc: {$near: {$geometry: { type: "Point", coordinates: [116.4, 39.9] },$maxDistance: 1000 // 1公里内}}
})

2.5 全文索引

db.articles.createIndex({ content: "text" })
  • 支持:多语言分词、停用词过滤

  • 搜索:db.articles.find({ $text: { $search: "mongodb tutorial" } })

2.6 哈希索引(分片专用)

db.users.createIndex({ _id: "hashed" }) // 分片键均匀分布

2.7 TTL 索引(自动过期)

// 文档在 create_time 后 3600 秒自动删除
db.logs.createIndex({ create_time: 1 }, { expireAfterSeconds: 3600 })
 

3、索引管理操作

3.1 创建索引

// 后台构建(不阻塞读写)
db.orders.createIndex({ product_id: 1 }, { background: true })

3.2 查看索引

db.collection.getIndexes()
// 输出:
[{ "v": 2, "key": { "_id": 1 }, "name": "_id_" },{ "v": 2, "key": { "city": 1, "age": -1 }, "name": "city_1_age_-1" }
]

3.3 删除索引

db.users.dropIndex("city_1_age_-1")

3.4 修改索引(隐藏/重建)

// 隐藏索引(测试性能影响)
db.coll.hideIndex("index_name")
// 重建索引(碎片整理)
db.coll.reIndex()

4、explain分析执行计划

db.orders.find({ user_id: 100 }).explain("executionStats")

注意:索引不是免费的 — 每个索引增加 10-20% 的写入开销。

explain()接收不同的参数,通过设置不同参数我们可以查看更详细的查询计划。

  • queryPlanner:queryPlanner是默认参数,具体执行计划信息参考下面的表格。
  • executionStats:executionStats会返回执行计划的一些统计信息(有些版本中和allPlansExecution等同)。
  • allPlansExecution:allPlansExecution用来获取所有执行计划,结果参数基本与上文相同。

1> queryPlanner默认参数

2> executionStats参数

理想状态:nReturned = totalKeysExamined = totalDocsExamined

stage的类型:

阶段说明优化建议
COLLSCAN全集合扫描必须添加索引
IXSCAN索引扫描检查索引效率
FETCH文档获取减少回表次数
SORT内存排序添加排序索引
LIMIT结果限制-
SKIP结果跳过避免大数据集skip
COUNT_SCAN计数扫描高效计数

5、慢查询分析

慢查询

  • 定义:执行时间超过设定阈值的操作(默认100ms)

  • 范围:包括查询、更新、删除、聚合等所有数据库操作

  • 关键指标:执行时间、扫描文档数、返回文档数、索引使用情况

5.1 开启慢查询记录

// 设置慢查询阈值(单位:毫秒)
db.setProfilingLevel(1, { slowms: 50 }) // 查看当前配置
db.getProfilingStatus()
/* 输出:
{"was": 1,"slowms": 50,"sampleRate": 1.0
}
*/
参数默认值说明生产建议
slowms100慢查询阈值(毫秒)50-100ms
sampleRate1.0采样率(1.0=记录所有慢查询)0.5(高负载系统)
profile00=关闭,1=慢查询,2=所有操作1

配置文件设置(mongod.conf):

operationProfiling:mode: slowOp               # 仅记录慢查询slowOpThresholdMs: 50      # 50ms阈值slowOpSampleRate: 0.5      # 50%采样率

5.2 慢查询日志分析

查看慢查询日志:

// 按执行时间倒序查看
db.system.profile.find().sort({ millis: -1 }).limit(5)

关键日志字段解析:

字段说明优化关注点
op操作类型(query/update/remove)高频操作类型
ns命名空间(database.collection)热点集合
millis执行时间(毫秒)>100ms需优化
keysExamined扫描索引键数量对比nreturned
docsExamined扫描文档数量过高需索引优化
nreturned返回文档数量对比keysExamined
planSummary执行计划摘要COLLSCAN需警惕
command完整命令(含查询条件)查询模式分析

慢查询特征分析:

// 分析不同操作的慢查询分布
db.system.profile.aggregate([{ $group: { _id: "$op", count: { $sum: 1 },avgTime: { $avg: "$millis" },maxTime: { $max: "$millis" }}}
])// 分析TOP慢查询集合
db.system.profile.aggregate([{ $group: { _id: "$ns", count: { $sum: 1 },queries: { $push: { query: "$command", time: "$millis" } }}},{ $sort: { count: -1 } },{ $limit: 3 }
])

之后通过4分析执行计划

http://www.dtcms.com/wzjs/24648.html

相关文章:

  • 网站建设空间空间有几种类型百度服务中心
  • 云南 网站建设网站百度认证官网
  • 运城可以做网站的公司谷歌搜索引擎
  • 公司网站建设会计处理全球十大搜索引擎排名
  • 注册万网后网站怎么赚钱的微信销售平台
  • 在线自助网站按照程序网站seo技术
  • 一步一步教你做网站后台视频互动营销案例100
  • 长春学校网站建设方案咨询培训心得体会范文
  • 有edi证书可以做网站运营么网络营销成功案例介绍
  • 西安营销型网站制作价格怎么做市场推广
  • 网站建设登录界面代码站优云网络公司
  • 电商网站系统简单网站建设优化推广
  • 影院网站如何做营销伎巧第一季
  • 教师做班级网站seo百度点击软件
  • 专业网站建设公司兴田德润放心三生网络营销靠谱吗
  • 一家专业做导购的网站谷歌独立站seo
  • 社保服务个人网站百度快照替代
  • 有了网站源码如何做网页无锡百度竞价推广
  • 定制高端网站建设公司企业网站怎么建立
  • wordpress响应网页代码网站推广怎么优化
  • 昆明手机网站建设市场营销策划书范文5篇精选
  • 网络空间 网站 域名关于新品牌的营销策划
  • 怎么上传文章网站百度指数数据分析平台官网
  • 毕业设计做网站用什么最全bt搜索引擎
  • b2c电子商务网站系统分析搜索引擎优化的对比
  • 用万网建设网站教程视频百度关键词优化大
  • 个人博客免费模板seo专业实战培训
  • 阿里云国际站官网吉林黄页电话查询
  • 网站建设需要什么人快速排名网站
  • 网站转换模块怎么做免费网页模板网站