谈谈你对数据库中索引的理解
区块链毕设网qklbishe.com为您提供问题的解答
谈谈你对数据库中索引的理解
作用是加速查询 底层是通过B+树实现的 索引又分为聚簇索引和非聚簇索引,区别是索引和数据是否储存在一起 拿InnoDB主键索引举个例子,这是一个聚簇索引,在非叶子节点中存放数据为主键数据,以及其指向的页的页号(数据库底层是以页为基本储存单位),在叶子节点存放完整的数据 而如果我们拿一张表的另一个或多个字段创建索引,那个就会形成一个非聚簇索引,其非叶子节点和聚簇索引的结构类似,但是其叶子节点并不会存放完整的数据,而是存放对应数据的主键。 在具体的查询过程中,如果采用聚簇索引,则会直接通过B+树找到完整的数据并返回,但是如果使用非聚簇索引,则会先找到具体数据的主键的值,再用该主键的值去到主键索引中找到完整的数据。当然,如果是索引覆盖的情况(即查找的字段被创建索引的字段所包含)那么将不会进行回表操作,直接返回值。 我们在使用索引时应该要避免索引失效,遵循最左匹配原则,即我们使用的where关键字时,后面的条件的顺序要和当初创建索引时的顺序相匹配,并且只能是前几个连续的。索引失效将会导致全表扫描,大大降低数据查询效率。 索引的使用并不是由我们决定的,而是由查询优化器通过预估计算后选出最合适的索引进行查询
20:33
以上就是关于问题谈谈你对数据库中索引的理解的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训