MySQL索引篇,索引的优缺点,分类及设

白癜风有治愈的吗 http://pf.39.net/bdfyy/zjdy/190516/7143439.html

索引在数据库中的作用是快速找出某个列中一个特定值的行,不使用索引的话,MySQL必须从第一条记录遍历到相关行,表越大,花费的时间越多,但是如果有索引,就能快速的到达某个位置去搜索数据文件,索引对于优化数据库查询速度有着不可替代的作用,本文主要给大家讲解一下MySQL数据库中,索引的优缺点,分类以及设计原则。

索引的优点

1.通过创建唯一索引,可以保证数据库每一行数据的唯一性2.可以大大提高查询速度3.可以加速表与表的连接4.可以显著的减少查询中分组和排序的时间。

索引的缺点

1.创建索引和维护索引需要时间,而且数据量越大时间越长2.创建索引需要占据磁盘的空间,如果有大量的索引,可能比数据文件更快达到最大文件尺寸3.当对表中的数据进行增加,修改,删除的时候,索引也要同时进行维护,降低了数据的维护速度

索引的分类

1.普通索引(Normal):基本索引类型,允许在定义索引的列里插入空值或重复值。2.唯一索引(Unique):索引列值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。主键索引是一种特殊的唯一索引,不允许有空值3.单列索引:只包含一个列的索引,一个表中可以有多个4.组合索引:包含多个列的索引,查询条件包含这些列的最左边的字段的时候,索引就会被引用,遵循最左缀原则5.全文索引(FullText):在定义的值中支持全文查找,允许空值和重复值,可以在CHAR,VARCHAR或者TEXT字段类型上创建,仅支持MyISAM存储引擎6.空间索引:针对空间数据做的索引,支持的数据类型有4种,分别是GEOMETRY,POINT,LINESTRING和POLYGON。创建空间索引的列必须声明为非空值(NOTNULL),仅支持MyISAM存储引擎

索引的设计原则

1.不是越多越好2.常更新的表越少越好3.数据量小的表最好不要建立索引4.不同的值比较多的列才需要建立索引5.某种数据本身具备唯一性的时候,建立唯一性索引,可以保证定义的列的数据完整性,以提高查询熟度6.频繁进行排序或分组的列(groupby或者是orderby)可以建立索引,提高搜索速度7.经常用于查询条件的字段应该建立索引

学习建议

需要明白索引的优缺点,再选择需要用的索引

最好在建表钱就确定每张表的索引字段




转载请注明:http://www.aierlanlan.com/rzfs/2040.html