MySql 上亿记录处理问题 !!!!
空格键 2013-12-30 11:13:55 现在系统单表记录 1 年的数据大概2亿左右,每个月2000W 多的样子
按网上的优化方法进行了一定的优化
对折个表建立了分区表 按记录时间的月进行的分区,也就是12个分区
现在的问题是系统要对这个表数据进行分页访问,经60000W的数据量测试,有如下的问题:
=============问题1==============
统计记录总数的时候发现非常的慢,
在数据引擎为: Myisam 时:
select count(*) from test 很快
select count(id) from test where addtime>='2013-01-01' and addtime<='2013-01-31' 很慢
在数据引擎为:InnoDB 时:
select count(*) from test 很慢
select count(id) from test where addtime>='2013-01-01' and addtime<='2013-01-31' 很快
请问有什么方法能加快记录的统计????????
=============问题2==============
还有分区表貌似没有什么用处,建立分区表后,我按分区关键字段查询记录也没见提高查询速度,我想应该是我用错了,请问我要怎么样才算正确使用分区表来提高查询速度呢????
=============问题3==============
还有分表的话具体怎么实施?如果我按月分表,但是碰到要夸月查询的情况怎么办?
现在我只在统计分析上做了分表,按年,月,日 分表,由存储过程自动计算放入相应的表
=============问题4==============
还有用limit 分页,在查询比较靠后的页时,会很慢。
在使用
SELECT * FROM visitlog where ID >(SELECT ID from visitlog ORDER BY ID ASC LIMIT 20000000,1)
ORDER BY ID ASC
LIMIT 20;
这种方式后有所提高,但是发现只能对ID字段有提高,用在日期型或其他类型上都很慢,怎么办???