mysql count很慢,mysql的count(*)的优化,获取千万级数据表的总行数
(15)MySQL表数据量超过一百万,计数很慢。-MySQL-Levi UP
mysql表数据量超过百万,计数非常慢。
三
邵琳,即使你花了一个世界的时间也不会有结果。
有什么好办法吗?
其实我只是想知道具体的数字,在应用上意义不大。
主要是你去拿其他小项目的时候做宣传。
其他操作、插入和查询都相当快。
MySQL评论
分享
编辑
报告
2012年5月22日
总共1条评论
沈燕:不要计算某一列。使用COUNT(*)可能会更快。
2012年5月22日
回答
关闭
总共有2个答案是最新的,也是最被认可的。
三
我是尤里。我不想做运维程序员。我不是一个好的建筑师。我想做两个简单的动作。
1) SQL
你怎么写你的sql语句?如果是table1中不带任何条件的count(*),建议直接使用MyISAM引擎,因为它会自动记录一个表中的总行数,这样的查询几乎不需要读取记录。
使用where,您必须将索引(包括group by)添加到where查询的列中。
例如,在a=1和b=2按c分组的情况下,最好在a、b和c上建立一个联合索引,或者至少在a上建立一个索引
2) mysql调优部分,
Myisam引擎:添加密钥缓冲区
Innodb:最重要的是增加innodb_buffer_pool_size,其次是innodb _ additional _ mem _ pool _ size。
最好两者都增加query_cache_limit、query_cache_size和read_buffer_size。