一个表里面的数据大概是如下的,这种重复的,现在单纯的根据 toUserId 倒叙拿数据列表,就开始 10 秒左右才能够在前台拿到数据了,数据分页为 100 条每一页,现在数据库也有 1G 左右了,请问要怎么优化一下。但是聚合查询速度挺快的。在 toUserId 上索引也试过了,并不能提升性能。

~~~

{ "_id" : ObjectId("554c697550a1d1a42d00003a"), "time" : Timestamp(1431071093, 33), "text" : "这是数据库测试:17", "toUserId" : ObjectId("554c338c50a1d12022000029"), "state" : "未读", "forUserIdObj" : ObjectId("554c338c50a1d12022000029") }

{ "_id" : ObjectId("554c697550a1d1a42d00003b"), "time" : Timestamp(1431071093, 34), "text" : "这是数据库测试:18", "toUserId" : ObjectId("554c338c50a1d12022000029"), "state" : "未读", "forUserIdObj" : ObjectId("554c338c50a1d12022000029") }

~~~

回复内容:

一个表里面的数据大概是如下的,这种重复的,现在单纯的根据 toUserId 倒叙拿数据列表,就开始 10 秒左右才能够在前台拿到数据了,数据分页为 100 条每一页,现在数据库也有 1G 左右了,请问要怎么优化一下。但是聚合查询速度挺快的。在 toUserId 上索引也试过了,并不能提升性能。

~~~

{ "_id" : ObjectId("554c697550a1d1a42d00003a"), "time" : Timestamp(1431071093, 33), "text" : "这是数据库测试:17", "toUserId" : ObjectId("554c338c50a1d12022000029"), "state" : "未读", "forUserIdObj" : ObjectId("554c338c50a1d12022000029") }

{ "_id" : ObjectId("554c697550a1d1a42d00003b"), "time" : Timestamp(1431071093, 34), "text" : "这是数据库测试:18", "toUserId" : ObjectId("554c338c50a1d12022000029"), "state" : "未读", "forUserIdObj" : ObjectId("554c338c50a1d12022000029") }

~~~

建议索引时间戳

索引那个userId不科学

照你这种情况,感觉不应该上mongodb,而应该上mysql

排序慢。分页慢。并不是索引的问题:查询瓶颈在于排序与分页。首先排序,每次分页都要重新排序一次。

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

php查询mongo数据库效率,2000000万数据库 MongoDB 查询速度慢相关推荐

  1. mysql迁移导致数据库效率低_MySQL数据库慢–排查问题总结(整理自《抽丝剥茧之MySQL疑难杂症排查》叶金荣)...

    1.常见瓶颈 (1)SQL效率低 (2)选项配置不当 (3)访问题飙升 (4)硬件性能低 (5)其他进程抢资源 2.怎样确认是MySQL存在瓶颈 top/free/vmstat/sar/mpstat确 ...

  2. Oracle10g SQL分页查询写法与效率比较

    在使用Oracle数据库进行分页查询算法设计时,分页查询的SQL语句基本上可以按照下面给出的模板来进行套用: 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN ...

  3. Oracle 分页查询方法和效率分析

    1.Oracle 12c fetch抓取记录 查询前10行记录 # fetch first 10 rows only 查询6至10行记录 # offset 5 rows fetch next 5 ro ...

  4. mongodb 搜索速度_MongoDB 模糊查询慢的问题 以及相关解决方案的探索

    最近公司有一个项目,数据库用的是 MongoDB,其中一个 Collection 的有 1300 万条数据,需求中需要对这个 Collection 支持指定 field 和 keyword 的搜索功能 ...

  5. 千万级游标_在一个千万级的数据库查寻中,如何提高查询效率

    在一个千万级的数据库查寻中,如何提高查询效率? 1)数据库设计方面: a.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. b.应尽量避免在 w ...

  6. 在一个千万级的数据库查寻中,如何提高查询效率?

    1)数据库设计方面:  a. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引.  b. 应尽量避免在 where 子句中对字段进行 null 值 ...

  7. java怎么查询千万数据,从java方面,在一个千万级的数据库查寻中,如何提高查询效率?...

    从java方面,在一个千万级的数据库查寻中,如何提高查询效率? 更多相关问题 请分析下面的歌曲<沂蒙山我的娘亲亲>片段中采用了那种长音或休止处的处理方法faea48d2d30c3b221e ...

  8. 在一个成百上千万级的数据库查寻中,如何提高查询效率

    一.数据库设计方面 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引: 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则 ...

  9. 从千万级数据查询来聊一聊索引结构和数据库原理

    在日常工作中我们不可避免地会遇到慢SQL问题,比如笔者在之前的公司时会定期收到DBA彪哥发来的Oracle AWR报告,并特别提示我某条sql近阶段执行明显很慢,可能要优化一下等.对于这样的问题通常大 ...

最新文章

  1. Fundebug录屏插件更新至0.4.0,修复BUG,优化性能
  2. python什么时候进入中国-python诞生于什么时候
  3. 删除驱动符号链接出错-变量作用域和RtlInitUnicodeString的问题
  4. ansible软件部署
  5. Python自动化运维之15、网络编程之socket、socketserver、select、twisted
  6. 移动磁盘显示由于IO设备错误,无法运行此项请求要怎样寻回资料
  7. Linux后台运行python程序并输出到日志文件
  8. 记一次easywechat企业付款问题
  9. axios中文文档(官方直译版)
  10. 为什么c语言运行比python快
  11. 555定时器组成的应用之流水灯
  12. 【基础知识】9、加州房价预测
  13. 蓝牙(四)LMP协议之一
  14. ubuntu16.04录制4K屏软件使用备注
  15. 2022年中国汽车事件数据记录器(EDR)市场现状研究分析与发展前景预测报告
  16. timer控件自动停止问题
  17. 80年计算机专业硕士,多年多份多种多类的工作经验总结和分享,并提供技术咨询和培训、大学生志愿报考、专业学习及就业和面试指导
  18. echars 3D地图为区域自定义颜色
  19. php日历天气预报下载安装手机桌面_日历天气预报
  20. IDEA 设置选项卡多行显示

热门文章

  1. A way to visualize mip levels
  2. Python排序 插入排序
  3. Django,静态文件配置
  4. Server's Revolution
  5. 11月16日云栖精选夜读:阿里云 oss JavaScript客户端签名文件上传 vue2.0
  6. jdbc连接数据库的步骤(转载)
  7. 分公司网络建设---Juniper 设备策略路由配置
  8. NDoc使用简要手册的补充
  9. 两个系统整合一起怎么说_结婚后该不该把父母接过来一起生活? 看看过来人是怎么说的...
  10. java绘制图形_java绘制基本图形.doc