高性能MySQL读书笔记一
索引基础索引类似于书的目录。存储引擎在索引中找到对应值,然后再根据匹配的索引记录找到对应的数据行。索引可以包含一个活多个列的值。如果索引包含多个列,那么列的顺序也十分重要,因为MySQL只能高校地利用索引地最左前缀列。
索引的类型索引有很多类型,MySQL的索引是在存储引擎层实现的,所以没有统一的索引标准。
B-Tree索引大多少MySQL引擎都支持这种索引。他们的内部实现也是不同的,有些存储引擎使用T-Tree结构存储这种索引,有些使用B+Tree。当然性能也各有不同。B-Tree通常意味着所有的值都是按顺序存储的,并且每一个叶子页到根的距离相同相同。B-Tree索引能够加快访问数据的速度,因为存储引擎不再需要进行全表扫描来获取需要的数据,取而代之的是从索引的根节点开始进行搜索。B-Tree对索引是顺序组织存储的,所以很适合查找范围数据索引对多个值进行排序的依据是建表语句中定义的索引列的顺序进行排序的。B-Tree索引适用于全键值、键值范围或键前缀查找。其中键前缀查找只适用于根据最左前缀的操作。
1234567create table People( last_name varchar(50) not null, first_name varchar(50) not null, dob date not null, gender enum('m','f') not null, key(last_name,first_name,dob))