In diesem Artikel erfahren Sie mehr über den kombinierten Index in MySQL, stellen die Methoden zum Erstellen und Löschen des kombinierten Index vor, sprechen über die Fallstricke des kombinierten Index, den Unterschied zwischen dem kombinierten Index und dem Einzelspaltenindex sowie die Verwendungsszenarien des kombinierten Indexes wird hoffentlich für alle hilfreich sein!
Zum Beispiel ist der Index key index (a,b,c)
, der a,b| unterstützen kann. c
3 Kombinationen werden für die Suche verwendet, aber b,c
wird für die Suche nicht unterstützt. Bei Verwendung kann auch die Kombination von a, c
verwendet werden, tatsächlich wird jedoch nur der Index von a
verwendet
Erstellen ein kombinierter Index 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
Kombinierten Index löschen
and
Bei der Abfrage aus dem Ausführungsplan wird nur der Index für die erste Bedingung verwendet und nachfolgende Indizes werden direkt ignoriert🎜b,a,c
, und MySQL verarbeitet die Bedingungssequenz automatisch in a,b,c und verwenden Sie dann den definierten kombinierten Index 🎜🎜<img src="https://img.php.cn/upload/image/606/915/328/163593860143734Erhalten%20Sie%20ein%20umfassendes%20Verst%C3%A4ndnis%20der%20kombinierten%20Indizes%20in%20MySQL%20und%20sehen%20Sie%20die%20Unterschiede%20zu%20einspaltigen%20Indizes" title="163593860143734Erhalten Sie ein umfassendes Verständnis der kombinierten Indizes in MySQL und sehen Sie die Unterschiede zu einspaltigen Indizes" alt="Erhalten Sie ein umfassendes Verständnis der kombinierten Indizes in MySQL und sehen Sie die Unterschiede zu einspaltigen Indizes">🎜🎜Die Abfragebedingung im obigen Bild ist <code>b,a
. Ebenso passt MySQL die Bedingungsreihenfolge an a,b und verwendet dann den kombinierten Index 🎜🎜<img src="https://img.php.cn/upload/image/149/823/571/1635938629900948.png" title="1635938629900948.png" alt="Erhalten Sie ein umfassendes Verständnis der kombinierten Indizes in MySQL und sehen Sie die Unterschiede zu einspaltigen Indizes">🎜🎜Up Die Abfragebedingung des Diagramms ist <code>b,c
, da a
offensichtlich nicht als Bedingungsspalte verwendet wird Verwenden Sie den kombinierten Index🎜and
anstelle von or
in der Bedingung. 🎜🎜🎜🎜Ein gemeinsamer Index ist besser geeignet als ein einzelner Index, da der Index eine bestimmte Menge an Speicherplatz belegt, was bedeutet, dass ein gewisser Overhead entsteht. Wenn mehr als ein einzelner Index vorhanden ist, entsteht viel Verschwendung Der gemeinsame Index entspricht mehreren. Erstellen Sie einen Index für jede Spalte und erstellen Sie ihn nur einmal, was unter der Bedingung und sehr gut geeignet ist. 🎜🎜🎜🎜Weitere Programmierkenntnisse finden Sie unter: 🎜Programmiervideo🎜! ! 🎜Das obige ist der detaillierte Inhalt vonErhalten Sie ein umfassendes Verständnis der kombinierten Indizes in MySQL und sehen Sie die Unterschiede zu einspaltigen Indizes. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!