Mysql索引学习(10.26)
目的
提高查询效率,为列创建索引(快速定位)
索引是表,保存主键或索引字段,以及将记录指向实际表的指针
非聚簇索引:索引中保存字段值的地址
聚簇索引:索引中保存字段的值
索引分类
-
唯一索引(一个表中可以有多个,不能出现相同值,可以有null)
-
普通索引(允许出现相同的索引内容)
-
主键索引(一个表中只可以有一个,不能出现相同的值)
-
全文索引(可以针对值中的某个单词)
-
组合索引(多个字段建在一个索引中,列值的组合必须唯一)
缺点
-
降低更新表的速度(更新时,既保存数据又保存索引文件)
-
占用磁盘空间的索引文件
技巧
索引中不含有null值
列中包含null,不会被包含在索引中
组合索引只要有一列为null,这一列对于组合索引就是无效的
使用短索引
串列索引,可以指定一个前缀长度(提高查询速度,节省磁盘空间,i/o操作)
如果前多个字符,多数值唯一,就不用对整列索引
like操作
不鼓励使用like操作,并且注意正确使用。
like '%aaa%'不会使用索引,而like 'aaa%'可以使用索引