一个表里面的数据大概是如下的,这种重复的,现在单纯的根据 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. 计算机导论excel,[计算机导论实验三Excel.doc
  2. CSS-布局样式之筛选条件右边线的处理方法(no CSS3)
  3. CentOS6.9中搭建FTP服务器
  4. html5判断设备的动作
  5. 刚刚,改造了下BaseDao……
  6. AngularJS(九):路由
  7. Python随机数生成方法
  8. 使用MySQL的存储过程
  9. 12 PP配置-生产主数据-工艺路线相关-定义物料类型分配
  10. VS C++/ClI调用C++ 外部Dll无法查看变量值
  11. 准备好所有应用程序以进行本地化
  12. 基于JAVA+SpringMVC+Mybatis+MYSQL的实验室设备管理系统
  13. 中职计算机英语教师教学总结,中职计算机教师教学工作总结 (3000字).doc
  14. CI框架 -- 核心文件 之 Loader.php(加载器)
  15. rockchip的调试手段
  16. base64编码图片替换url图片
  17. 三个角度细谈:如何发挥朋友圈广告的威力
  18. 品千秋之遗迹, 叹万世之须臾
  19. 15.大数据---Mapreduce案例之---统计手机号耗费的总上行流量、下行流量、总流量
  20. 第15节-热区Hot Spots | 剑雨Axure RP9系列【基础】

热门文章

  1. Keras-10 模型可视化
  2. javascript 公历与农历相互转换工具类
  3. 【学习笔记】HTML基础:使用html制作网页
  4. Nginx使用教程(八):使用Nginx缓存之Memcached缓存
  5. Eclipse EGit插件安装使用记录
  6. java对象序列化和反序列化,redis存入和获取对象
  7. 利用DEDE正则批量查找替换数据库的自定义内容
  8. 操作系统1_进程控制块PCB
  9. ORACLE SQLSERVER2005分页
  10. Spring Boot application.yml文件语法