理解索引的特性
索引是帮助Mysql高效获取数据排好序的数据结构
索引是存储在文件里面的
索引的各种存储结构及优缺点
首先看一下,在数据库没有加索引的情况下,SQL中的where语句是如何查找目标记录的...如果不手动指定主键,InnoDB会从插入的数据中找出不重复的一列作为主键索引,如果没找到不重复的一列,这时候InnoDB会选择内置的ROWID作为主键,写入顺序和ROWID增长顺序一致;其次,索引的数据类型是整型...最后,B+树本质是多路多叉树,如果主键索引不是自增的,那么后续插入的索引就会引起B+树的其他节点的分裂和重新平衡,影响数据插入的效率,如果是自增主键,只用在尾节点做增加就可以。...mysql会优先以联合索引的第一列开始匹配,此后才会匹配下一列,如果不指定第一列匹配的值,那么也就无法知道下一步要查询那个节点(可以联想B+树的数据结构,第一列匹配到值后,会进行一次数据结构的排序筛选,...得出排好序的数据结构,在进行匹配下一列,得出最终结果,那么如果直接跳过第一列,匹配第二列,b+树会无法找到排好序的数据结构结果,就会进行全表扫描)
另外一种情况,如果遇到 ">"、"<"、"between