您现在的位置:首页 --> 查看专题: 查询性能
count(*), count(time)和count(id)的对比. 结果有较大变化. 当表的字段只有2个且查询条件较宽松(即符合条件的记录数较多)时, count(id)比count(*)快很多, 但是, 当表中还有其它的字段时, count(id)反而更慢了. 虽然id是主键, time是索引列, 但是select count(id) where time并没有用到索引, 而是进行全表扫描. 当对count(*)进行ignore key(time)时, 查询时间和count(id)相同. 证明当结果集较大时索引导致查询变慢, 应该是全表扫描进行的是连续的磁盘IO和内存操作, 而使用索引是进行随机的磁盘IO和内存操作, 并且MyISAM存储索引的BTree结构占用更多的空间. 当WHERE条件约束更严格, total的值小到一定程度时, 全表扫描比使用索引慢, 因为索引极大减少了磁盘IO和内存操作.
[ 共1篇文章 ][ 第1页/共1页 ][ 1 ]
近3天十大热文
-
[80] HFile存储格式
-
[56] 一个Captcha的思路
-
[44] IPv6和IPv4的掩码区别
-
[42] Hacker News 排名算法工作原理
-
[36] IMDB评分排名算法
-
[36] 数学之美:StackOverflow问答排名
-
[34] Linux dd 命令的用法
-
[33] umask补习班
-
[33] HBase Thrift 接口使用注意事项
-
[31] Using MySQL as a NoSQL
赞助商广告