前言
网上都说学会mysql需要学会两个部分,索引和事务,其实在最近的Mysql学习过程中,我觉得应该是有三个部分的,索引,查询,事务.其中的查询主要是指查询优化即编写高效率的SQL语句....本文记录一下学习MySQL的索引过程中的一些知识.主要为阅读《高性能MySQL》的一些理解和扩展.
什么是索引
索引是存储引擎用于快速找到记录的一种数据结构....从理论上来讲,MySQL在5.0之后的版本里面对支持合并索引,也就是同时使用两个索引,但是MySQL的优化器不一定这样认为,他可能会认为,查询两次B+树的代价高于查询一次索引之后去数据表进行过滤,因此会选择只用一个索引...(我在自己的5张表上做了类似此case的测试,结果都是只使用了一个索引.)...这也是innodb推荐我们使用自增主键的原因,因为自增主键自增且连续,在插入的时候只需要不断的在数据后面追加即可.设想一下使用UUID来作为主键,那么每一次的插入操作,都需要找到当前主键在已排序的主键中的位置