Cet article vous amènera à comprendre l'index combiné dans MySQL, à présenter les méthodes de création et de suppression de l'index combiné, à parler des pièges de l'index combiné, de la différence entre l'index combiné et l'index à colonne unique, ainsi que des scénarios d'utilisation. de l'index combiné. J'espère qu'il sera utile à tout le monde !
key index (a,b,c)
可以支持 a | a,b| a,b,c
3 种组合进行查找,但不支持 b,c
进行查找。在使用的时候,a, c
组合也可以用,但实际上只用到了 a
的索引-- 普通的组合索引 create index index_name on table_name (column1, column2, ...) -- 组合要求唯一的索引,相比与上一种,多出了 【unique】关键字 create unique index index_name on table_name (column1, column2, ...)
-- 用法 1 drop index index_name on talbe_name -- 用法 2 alter table table_name drop index index_name -- 用法 3,对 2 的包装 alter table table_name drop primary key
如图所示,我们创建了 2 个索引,在 where 中使用 and
进行查询是,从执行计划里看只使用到了第一个条件上的索引,后续的索引直接被忽略掉
如图,现在建立组合索引 a,b,c
上图的条件查询为 b,a,c
,mysql 会自动处理条件顺序变为 a,b,c
, 再使用定义好的组合索引
上图的查询条件是 b,a
,同样的,mysql 调整条件顺序为 a,b
,再走组合索引
上图的查询条件是 b,c
,很明显,由于没有使用 a
作为条件列,导致 mysql 没有使用组合索引
联合索引中列的顺序非常重要,从左原则。
单个索引就是一个一个起作用,也就是说有三个单个索引,哪个条件查询在前哪个起作用,其他不起作用。
where 条件会经常出现的,并且当前表的数量比较大。
where 条件中是用 and
而非 or
Créer un index combiné
Piège d'index à colonne unique
🎜🎜🎜🎜Comme le montre l'image, nous avons créé 2 index et utiliséet
Lors de l'interrogation, à partir du plan d'exécution, seul l'index de la première condition est utilisé, et les index suivants sont directement ignorés🎜b,a,c
, et mysql traitera automatiquement la séquence de conditions dans a,b,c , puis utilisez l'index combiné défini 🎜🎜<img src="https://img.php.cn/upload/image/606/915/328/163593860143734Obtenez%20une%20compr%C3%A9hension%20approfondie%20des%20index%20combin%C3%A9s%20dans%20MySQL%20et%20d%C3%A9couvrez%20les%20diff%C3%A9rences%20par%20rapport%20aux%20index%20%C3%A0%20colonne%20unique" title="163593860143734Obtenez une compréhension approfondie des index combinés dans MySQL et découvrez les différences par rapport aux index à colonne unique" alt="Obtenez une compréhension approfondie des index combinés dans MySQL et découvrez les différences par rapport aux index à colonne unique">🎜🎜La condition de requête dans l'image ci-dessus est <code>b,a
De même, mysql ajuste l'ordre des conditions à a,b<.>, puis utilise l'index combiné 🎜🎜<img src="https://img.php.cn/upload/image/149/823/571/1635938629900948.png" title="1635938629900948.png" alt="Obtenez une compréhension approfondie des index combinés dans MySQL et découvrez les différences par rapport aux index à colonne unique">🎜🎜Up La condition de requête du graphique est <code>b,c
Évidemment, parce que a
n'est pas utilisé comme colonne de condition, MySQL ne le fait pas. utilisez l'index combiné🎜et
au lieu de ou
dans la condition. 🎜🎜🎜🎜L'index conjoint est plus approprié qu'un index unique, car l'index occupe une certaine quantité d'espace disque, ce qui signifie qu'il y a une certaine surcharge. S'il y a plus d'un index unique, il y aura alors plus de gaspillage de plusieurs. ressources. L'index conjoint équivaut à plusieurs. Créez un index sur chaque colonne et ne le construisez qu'une seule fois, ce qui est très approprié dans les conditions et. 🎜🎜🎜🎜Pour plus de connaissances sur la programmation, veuillez visiter : 🎜Vidéo de programmation🎜 ! ! 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!