天天看点

mysql添加索引没有减少查询时间_mysql添加索引,查询反而变慢

1.表结构,time1添加普通索引:

CREATE TABLE `time_table` (

`time1` INT(11) NULL DEFAULT NULL,

`time2` INT(11) NULL DEFAULT NULL,

INDEX `time1` (`time1`)

)

ENGINE=MyISAM

;

2.蠕虫复制创建200万条数据

insert into time_table select * from time_table

3.开始查询:time1有索引,time2没索引,数据200万

set profiling=1;

select * from time_table where time2=1111111;

select * from time_table where time1=1111111;

show profiles;

4.结果,加了索引反而变慢了:

mysql添加索引没有减少查询时间_mysql添加索引,查询反而变慢

重新反思,蠕虫复制的表的内容过于简单了,总共400百万条数据,200万条数据time1=11111,time2=11111,还有200万条数据,time1=22222,time2=22222,

重新制造200万条数据,先蠕虫复制400百万条数据,time2=1,然后新加字段time1(自增),在update time2=time1,

最终的表如下(time1是唯一索引):

mysql添加索引没有减少查询时间_mysql添加索引,查询反而变慢

查询时间分析,符合预期:

mysql添加索引没有减少查询时间_mysql添加索引,查询反而变慢

然后改成唯一索引,也符合预期:

mysql添加索引没有减少查询时间_mysql添加索引,查询反而变慢

但是依旧有问题:

为什么800万条数据,数据几乎一样(一半为111111,一半为2222)

mysql添加索引没有减少查询时间_mysql添加索引,查询反而变慢

添加索引的字段,反而查询更慢。

自己的猜想:数据一样,索引是不是作用效果几乎没有,但是因为有了索引,字段存储空间多了,查询慢了,纯属自己乱想,希望可以解答一二!

希望可以交流下,qq:2210170490