mysql单列索引 多列索引的使用

本文介绍了数据库索引的作用,强调了索引优化对数据库性能的重要性。详细阐述了单列索引和多列索引的区别,特别是多列索引的适用场景和最左前缀原则。通过实例说明,当查询条件涉及多个字段时,如何合理建立和使用多列索引以提高查询效率。
摘要由CSDN通过智能技术生成
               

一、简介     

       数据库的索引可以加快查询速度,原因是索引使用特定的数据结构(B-Tree)对特定的列额外组织存放,加快存储引擎(索引是存储引擎实现)查找记录的速度。
       索引优化是数据库优化的最重要手段。

       如果查询语句使用索引(通常是where条件匹配索引)就会利用树的结构加快查找,索引会按值查找到要查找的行在表中位置,不需回表查询数据的就是聚簇索引(索引和数据存放在一起)。通常是需要回表再查数据,需要消耗额外的磁盘IO。所以有些时候(如按顺序读取数据)全表扫描会比使用索引快的原因就在于此。

       查询条件只有一个字段时,在该字段建立索引即可,可优化的地方是对于text blob字段使用前缀索引。

       当查询条件有多个字段时,单列索引和多列索引有很大的区别。如果使用多列索引,where条件中字段的顺序非常重要,需要满足最左前缀列。最左前缀:查询条件中的所有字段需要从左边起按顺序出现在多列索引中,查询条件的字段数要小于等于多列索引的字段数,中间字段不能存在范围查询的字段(<,like等),这样的sql可以使用该多列索引。

二、多列索引适合的场景

       1.全字段匹配

       2.匹配部分最左前缀

       3.匹配第一列

       4.匹配第一列范围查询(可用用like a%,但不能使用like %b)

       5.精确匹配某一列和和范围匹配另外一列

       order by操作中出现的字段同样适用于按值查找的规则,where+order by中出现的字段需可以建立满足如上五

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值