摘要:華為雲RDS for PostgreSQL通過插件管理功能,很好地解決了PostgreSQL版本與插件耦合的問題,幫助用戶更直觀、更快速地安裝管理資料庫插件。 本文分享自華為雲社區《PostgreSQL插件那麼多,怎樣管理最高效?》,作者:GaussDB 資料庫。 雲服務環境下,如何讓客戶更方 ...
複合主鍵在where中使用查詢的時候到底走不走索引呢?例如下表:
create table index_test ( a int not null, b int not null, c int not null, d int null, primary key (a, b, c) );
當執行以下SQL的時候到底走不走索引呢?
-
SELECT * FROM index_test WHERE a = 1;
-
SELECT * FROM index_test WHERE a = 1 AND b = 1;
-
SELECT * FROM index_test WHERE a = 1 AND b = 1 AND c = 1;
-
SELECT * FROM index_test WHERE b = 1;
-
SELECT * FROM index_test WHERE b = 1 AND c = 1;
-
SELECT * FROM index_test WHERE a = 1 AND c = 1;
Explain結果:
- 使用索引
- 使用索引
- 使用索引
- 不使用索引
- 不使用索引
- 使用索引
結論:Mysql複合主鍵的順序十分重要,WHERE查詢條件中會按列匹配複合主鍵,匹配上則使用索引直到匹配不上為止。例如上表,WHERE條件中有a則使用a的索引,有a,b則使用a,b的索引;如果沒有a,只有b或c,則不走索引;有a,中間無b,有c則只使用a的索引。