Mysql索引:(重点)
索引分为:单列索引、复合索引、唯一索引、主键索引等。
单列索引:即是最基本的索引,没有任何限制。
注:当表被创建时,主键的定义字段会自动创建索引,这是一种特殊索引---丛生索引。其中Seq_in_index表示索引字段的顺序。(show index from tablename可以查看表中的索引信息)
复合索引:复合索引是在多个字段上创建的索引。遵守“最左前缀”原则,即在查询条件中使用了复合索引的第一个字段,索引才会生效。因此在使用复合索引时----复合索引中索引顺序极其重要。
注:复合索引的重点就是使用索引生效的首要条件就是在where条件里面必须包含复合索引中的第一个字段,否则复合索引不起作用。
唯一索引:唯一索引必须创建关键字“UNIQUE”,唯一索引限制列的值必须唯一,但允许有空值。对于多个字段,要求组合值必须唯一。
主键索引:也称为---丛生索引,是一种特殊的唯一索引,不允许有空值。(一般建表时指定主键后,会自动创建)
索引的使用:
1.where 条件中的字段适合作为索引;
2.尽量不要将一些只包含“是/否”的字段作为索引,不管如何都是五五开;
3.不要过度使用索引,每次增删改会维护表的索引;
4.在InnonDB引擎中,记录默认会按照一定顺序存储,如果已经定义主键,则按照主键顺序存储。由于普通索引会保存主键键值,故主键应尽可能选择较短的数据类型,减少存储空间。