前言
对于数据库而言,常用的操作数据的方式无外乎增、删、改、查而已。而在真正的生产环境中,增加、删除、修改这三项很少有问题会出现。对于一些复杂的查询而言,尤其是数据量过大的情况下,查询语句往往会很慢,所以提高查询的速度才是重中之重的。那么,为了提高速度,索引就成了必不可少的了。
概述
索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可以提高数据库中特定数据的查询速度。
如果没有索引,mysql必须从第一条记录开始读取整个表格,一直读到需要找的内容为止
如果有了索引,mysql能够快速地到达某个指定的数据,而不必查询所有数据
分类
1、普通索引是mysql中的基本索引类型,允许在定义索引的列中插入重复值和空值
2、唯一索引。被定义为唯一索引的列的值必须唯一,但是允许出现空值。
3、组合索引。它是在表中的多个字段上创建的索引
4、全文索引。在定义全文索引的列上支持全文查找
5、空间索引。对空间数据类型的字段创建的索引(几乎用不上)
设计原则
索引在设计的时候,如果设计的不合理或者确守索引都会对数据库和应用程序造成障碍,因此设计索引时要考虑几个问题:
①、索引并非越多越好,因为索引本身需要占用相应的物理空间
②、避免对经常进行更新的表进行过多的索引,并且索引中的列尽可能地少,对经常要查询的字段应该添加索引
③、数据量小的表最好不要添加索引
④、在不同的值很少的列上不要建立索引,例如性别这个列只有男和女、
⑤、当唯一性是某个数据本身的特征时,需要制定唯一索引 比如说 电话号