mysql 千万级的分页查询---求好的思路 最近做一个项目,涉及到千万级的数据库处理。做分页的时候一次统计千万的数据量会等好久。大家有什么好的方法。我现在用的是count(id)统计的。MySQL千万级海量查询 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 表分区处理横向纵向切分主键加索引select count(主键) from count做分区没有意义,我相信用户不会对多有的数据都感兴趣的,可以对这些数据加一些过滤,比如在界面上加一个时间过滤条件 1、最好先检查下你用于计算总条目数的SQL语句的执行计划。2、最好不要用 count(id),直接用 count(1)。3、索引是否创建正确?也需要根据1的检查结果来定。4、另外自行记录总条目数。 感谢您的回复,我刚才安装一个朋友说的重启mysql,对比了下count(id)和count(1),确实1比id更快。另外一个朋友说,使用RANGE分区以后在加list分区 。因为我的查询里面会多设计到时间段查询和分部门查询。索引暂时没建。 数据库表,是不是有个rowid还是rownum的隐藏列?这个是自增长的自然数,能否考虑用它来做分页? 感谢您的回复,我刚才安装一个朋友说的重启mysql,对比了下count(id)和count(1),确实1比id更快。另外一个朋友说,使用RANGE分区以后在加list分区 。因为我的查询里面会多设计到时间段查询和分部门查询。索引暂时没建。 建分区的效果会更好,但是会增加很多管理复杂度,索引也会复杂化。所以如果能通过其它方式优化,就先不动用分区;就算真的建立分区,也暂时别建立两级分区吧。索引还是要建的,没有索引,每次都是 Full Scan,属于耍数据库的做法 我感觉可以把常用的数据放入一个视图或者一个表中.比如你的千万级别的数据是按照年分的.那么把半年的内的常用数据放在这个review或者table中.那么数据可能就是百万级甚至十万级别了.那就快多了.另外也可以用Redis内存数据库来同步你这个千万级的表.如果用Redis的话,基本就是1秒内了. 跪求各位兄弟姐妹,帮忙解决java调用shell脚本问题 【求救】基于SSH框架的文件上传下载 启动服务报错 关于数据结构 struts请求时不加.do也可以吗? Socket write error!!! 点击后退按钮页面过期,如何让他不显示过期(急急急~~~) 关于汉字转化为拼音的ASCII规律 Eclipse中XML的问题 大家谈一谈struts里的actionform 在iReport中配置sqlserver的jdbc报错!! 在JTextArea中可以输出list吗,怎么输出 在jsp中调用谷歌地图,随意点两个点,沿着道路生成路线
横向纵向切分
主键加索引
select count(主键) from
2、最好不要用 count(id),直接用 count(1)。
3、索引是否创建正确?也需要根据1的检查结果来定。
4、另外自行记录总条目数。
另外一个朋友说,使用RANGE分区以后在加list分区 。
因为我的查询里面会多设计到时间段查询和分部门查询。
索引暂时没建。
另外一个朋友说,使用RANGE分区以后在加list分区 。
因为我的查询里面会多设计到时间段查询和分部门查询。
索引暂时没建。
建分区的效果会更好,但是会增加很多管理复杂度,索引也会复杂化。所以如果能通过其它方式优化,就先不动用分区;就算真的建立分区,也暂时别建立两级分区吧。索引还是要建的,没有索引,每次都是 Full Scan,属于耍数据库的做法