数据结构与算法

数据库索引

索引的重要性应该不需要我讲,做后端服务的同学都知道。但是索引是以什么结构存储的?每种数据库引擎都一样吗?为什么索引的查询这么快?让我们一起来解下这些问题。 复杂度选择 索引存在的意义就是为了提高我们查询的速度,而查询的速度一般与所做查询的次数成正比。 算法时间复杂度 上图列出了各种复杂度在数据量变化下的操作次数变化曲线。可以看出: O(1) 是最好的,但是这种时间复杂度比较难以达到。

全网都在说一个错误的结论

大家在背 MySQL 八股文的时候,是不是经常看到这句话。 联合索引的最左匹配原则会一直向右匹配直到遇到范围查询(>、<、between、like) 就会停止匹配。 我随手在网上搜了下, 基本全部都是这个结论,似乎这个结论大家都耳濡目染了,应该大多数人都觉得这个结论是正确的吧。 我在昨晚折腾了几个实验,发现这个结论并不全对!去掉 「between 和 like 」这个