十九、MySQL基础系列笔记之索引的设计与使用
MySQL索引概述
根据存储引擎的不同 ,每个表最大索引数和最大索引长度,每种存储引擎对每个表至少支持16个索引,总索引长度至少为256字节。
MyISAM和InnoDB存储引擎的表默认创建的都是BTREE索引。
什么是索引
索引是一种数据结构。用于快速检索数据。
索引是依靠某些俗话据结构和算法来组织数据,最终引导用户快速检索出所需要的数据。
上述所写的两种关于什么是索引都说明了什么是索引,选择其中的一个就可以。总这记住一点,索引是一种数据结构。
索引的特点
- 通过数据结构和算法来对原始的数据进行一些有效的组织
- 通过这些有效的组织,可以引导使用者对原始数据进行快速检索
索引的特点一句来概括,就是通过数据结构和算法来组织数据用于快速检索出所需要的数据。
索引设计原则
- 在条件列上创建索引。最适合索引的列表是出现在where子中的列,或连接子句中指定的列;
- 尽量使用唯一索引。考虑某列中值的分布。索引的列的基数越大,索引的效果越好。如男和女的列,则对此列创建索引没有多大意义;
- 数据量小的表避免使用索引;
- 使用短索引。若对字符串列进行索引,则应指定一个前缀长度;
- 使用最左前缀。
索引设计误区
- 不是所有的表都需要创建索引,索引并非越多越好。若一个表中有大量索引,不仅占用磁盘空间,而且影响insert、delete、update等语句的性能。
- 不要过渡索引;
- 谨慎创建低选择度索引。
2020-10-27
请登录后再评论