外观
索引概述
索引分类
- 普通索引
普通索引不应用任何限制条件的索引,该索引可以在任何数据类型中创建。字段本身的约束条件可以判断其值是否为空或唯一。在某数据表的某一字段中创建该类型索引后,用户便可通过索引进行查询。
- 唯一索引
使用UNIQUE参数可以设置索引为唯一索引。创建该索引时,索引的值必须唯一,通过唯一索引,用户可以快速定位某条记录,主键是一种特殊的唯一索引。
- 全文索引
使用FULLTEXT参数可以设置索引为全文索引。全文索引只能在CHAR、VARCHAR、TEXT类型的字段上创建。查询数据量较大的字符串类型的字段时,使用全文索引可以提高查询速度。如,查询带有回复内容的字段,可以应用全文索引方式。需要注意的是,在默认情况下,应用全文搜索大小写不敏感。如果索引的列使用二进制排序,可以使用对大小写敏感的全文索引。
- 单列索引
顾名思义,单列索引即只对一个字段生效的索引,其可以包含上述3种索引方式。应用该索引时必须保证该索引的值对应一个字段。在添加单列索引时,若被索引的列为varchar、text等类型,则还可以为索引添加长度。
- 多列索引
多列索引实在表的多个字段上创建一个索引。该索引指向创建时对应的多个字段,用户可以通过这几个字段进行查询。要想应用该索引,用户必须使用这些字段的第一个字段。多列索引在使用联合查询时会起到优化作用,但是它不能优化单独使用被索引的列满足特定条件的查询。多列建索引比对每个列分别建索引更有优势,因为索引建立得越多就越占磁盘空间,在更新数据的时候速度会更慢。另外建立多列索引时,顺序也是需要注意的,应该将严格的索引放在前面,这样筛选的力度会更大,效率更高。
- 空间索引
使用SPATIAL参数可以设置该索引为空间索引。空间索引只能建立在空间数据类型上,这样可以提高系统获取空间型数据的速度。MySQL中只有MyISAM存储引擎支持空间检索,而且索引的字段不能为空值。