这是我在学习Mysql之路上做的笔记,今天将它粘出来。这一篇主要是Mysq的l索引index。有错误的欢迎大家指出。。
数据库的创建参考我的另一篇博客
https://blog.csdn.net/csdnluolei/article/details/83409945
#索引
原理:当对表字段创建一个索引,数据库就会创建一个索引页,索引页不仅存储的有索引的数据,还保存了索引数据在数据库的物理位置;
作用:加快查询速度,类似一本书的目录,索引可以避免对表全面扫描;
1.如果列很少,不建议建索引;
2.主键和唯一键会自动创建索引;
3.适合在常用的字段创建索引;
在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间;
在经常使用在WHERE子句中的列上面创建索引,加快条件的判断速度。
缺点:
创建索引和维护索引要耗费时间
索引需要占物理空间
#创建索引
复制SQLCREATE INDEX index_tb_emp ON tb_emp(ename);
- 1
#使用索引,ename='King'就使用了索引
复制SQLSELECT *FROM tb_emp WHERE ename='King';
SELECT *FROM tb_emp;
- 1
- 2
- 3
#多次insert,update,DELETE之后会有索引碎片,垃圾文件会影响查询速度
#最一个月重组索引一次,也就是删除索引再建索引
#删除索引2种方法alter和drop
复制SQLALTER TABLE tb_emp DROP INDEX index_tb_emp;
DROP INDEX index_tb_emp ON tb_emp;
- 1
- 2
- 3
#创建索引
复制SQLCREATE INDEX index_tb_emp ON tb_emp(ename);
- 1
#如果有一个CHAR(255)的列,如果在前10个或30个字符内,多数值是惟一的,则不需要对整个列进行索引。
#短索引不仅可以提高查询速度而且可以节省磁盘空间、减少I/O操作。
复制SQLDESC tb_emp;
- 1
#创建短索引
复制SQLCREATE INDEX index_tb_emp ON tb_emp(ename(3));
- 1
————————————————
版权声明:本文为CSDN博主「csdnluolei」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/csdnluolei/article/details/83410595