从联合索引到最左匹配
从联合索引到最左匹配
索引
数据库索引是为了提高查询速度而对表的字段附加的一种标识。
简单来说,索引其实是一种数据结构。数据库的索引类似于书籍的目录。
在书籍中,目录允许用户不必翻阅整本书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速找到表中的数据,而不必扫描整个数据库。
首先,我们要明白为什么索引会提高查询速度。数据库在执行一条 SQL 语句的时候,默认的扫描方式是根据搜索条件进行全表扫描,遇到符合匹配条件的就加入搜索结果集合中。
如果我们对某一字段增加索引,查询时就会先去索引列表中一次定位到特定值的行数,大大减少了遍历匹配的次数,所以数据库索引能明显提高查询的速度。
哈希(Hash)比树(Tree)快,为什么 InnoDB 热衷于树型?
对于等值查询的 SQL,如:
1SELECT * FROM user t WHERE t.user_id = "1356894556";
因为上述每次查询肯定只会返回一条记录,所以采用 hash 结构索引的话,确实会比树结构快。
但是除了等值查询,数据库中还有范围查询,分组 gr ...