要测试是否使用索引对查询速度的影响,首先要把查询缓存给关掉,要不下次查询走了缓存,就对索引测试有影响了,如下,查询缓存已经关闭了:

文章插图
我们使用语句show index from tb_user来查询现在表中建立索引的情况,发现现在一个索引也没有:

文章插图
这时我们来查询一下:

文章插图
通过主键来查询,才一百万条数据,就已经耗时将近1秒了,这是不能忍的,对于主键,我们来建立主键索引,看查询速度有什么变化:

文章插图

文章插图
建立主键索引耗时5.4秒,耗时这么久是因为要建立索引树,也就是B+Tree 。运行刚才那一条查询语句:

文章插图
就在那一瞬间,数据就被查询出来了,效率高低一竿见影呀!
对用户名建立唯一索引,语句为ALTER TABLE tb_user ADD UNIQUE KEY (user_name):

文章插图
保存了,重复的值,这是因为我改了其中的一个用户名,来验证唯一索引对改列值唯一性的要求 。把值改回来再重新建立唯一索引:

文章插图
联合索引、普通索引和全文索引,按照上面写的建立索引的语句,都可以正确的为每列建立索引,大家动手试一下把!
推荐阅读
- MySQL底层的存储结构
- 数据库:SQLServer分页查询整理
- MySQL分组查询后如何获取每组的前N条数据,你会吗?
- 5大常用MySQL客户端工具,入门数据库必备收藏
- MySQL递归查询上下级菜单
- 这些 MySQL 调优配置,你都知道吗?
- mysql误删数据恢复
- 生产环境下shell脚本:Mysql数据库备份和Mysql主从同步监控
- Mysql数据库实现主从同步,看这一篇就够了
- 使用mysqld_exporter监控MySQL并展示数据
