日期:2014-05-17  浏览次数:20605 次

约一亿数据的分页问题
问题是这样的,有张表,数据量是亿级的,7个字段不多,主键是int自增长
分页的时候要获取数据总量
我用
select count(id) from table

应该没什么问题吧
可是就是这里太慢了,我的机器要一分半中才能跑出结果来
单纯的分页语句倒是很快
-----
这样我前台查询的时候时间太长,超时了
想问问各位有没有比较好的解决方案
先谢谢了
大数据

------解决方案--------------------
表分区没?大表建议分区
------解决方案--------------------
1、频繁插入,那么你的索引的填充因子最好降低一点。这样避免索引过快分裂。
2、id建聚集索引,然后数据量的话可以通过:SELECT rowcnt FROM sys.sysindexes WHERE id=OBJECT_ID('表名')来获取,秒杀。
3、方法2中要保证数据的统计信息要开启自动更新。
------解决方案--------------------
索引针对的话,应该很快的

不过,表最好加分区
------解决方案--------------------
我想说的是你这么多数据都是你想要查询的吗
这么多数据,没分库,分区吗

你这么多数据及时查出总数,分页也会慢死的。

数据量大,首先你要缩小范围,比如,只要这个月的,这个分区上的数据

如果都要,多线程,并行运算,最后合并数据

直接查,别说亿级数据,就是千万的也会慢死的。