MySQL索引对查询的影响_Mysql测试_索引对查询性能影响

1.环境信息

mysql-5.6.17-winx64

2.新建两张表,tb_big_data和tb_big_data2。tb_big_data数据1100000条,tb_big_data2数据2000条

mysql> select count(*) from tb_big_data;

+----------+

| count(*) |

+----------+

| 1100000 |

+----------+

1 row in set

mysql> select count(*) from tb_big_data2;

+----------+

| count(*) |

+----------+

| 2000 |

+----------+

1 row in set

3.执行join查询,查看执行join查询且结果为49000的查询时间

mysql> select * from tb_big_data2 b left join tb_big_data a on b.random_more = a.random where b.random_more=2;

4.对字段增加普通索引和不加索引,查询时间相差1000倍

mysql> show profiles;

+----------+--------------+--------------------------------------------------------------------------------------------------------+

| Query_ID | Duration | Query |

+----------+--------------+--------------------------------------------------------------------------------------------------------+ |

| 9 | 135.77425125 | select * from tb_big_data2 b left join tb_big_data a on b.random_more = a.random where b.random_more=2 |

| 11 | 4.96485125 | ALTER TABLE tb_big_data ADD INDEX index_name (random) |

| 12 | 0.01095375 | describe tb_big_data |

| 13 | 0.14014425 | select * from tb_big_data2 b left join tb_big_data a on b.random_more = a.random where b.random_more=2 |

+----------+--------------+--------------------------------------------------------------------------------------------------------+

5.单列索引和多列索引

未创建索引,对两个字段过滤查询需要,结果为2条数据耗时6.4s,创建多列索引(count,random),耗时0.03s,创建两个单列索引,耗时0.08s。在对多个字段进行过滤查询时,多列索引和单列索引的性能还是不一样的。

mysql> show profiles;

+----------+-------------+-------------------------------------------------------------+

| Query_ID | Duration | Query |

+----------+-------------+-------------------------------------------------------------+

| 8 | 6.439019 | select count(*) from tb_big_data where count=6 and random=2 |

| 9 | 44.570048 | create index index_name on tb_big_data(count,random) |

| 10 | 0.0311755 | select count(*) from tb_big_data where count=6 and random=2 | |

| 13 | 37.07460275 | create index index_name on tb_big_data(count) |

| 15 | 39.00397825 | create index index_name2 on tb_big_data(random) |

| 17 | 0.08649375 | select count(*) from tb_big_data where count=6 and random=2 |

+----------+-------------+-------------------------------------------------------------+

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值