關於聯合索引的建立及命中

2021-10-14 02:31:17 字數 813 閱讀 4057

我們建立乙個栗子表review(表內容自己新增,此處略過),這裡我的測試表資料在100w多

在該錶如沒有索引或者沒有命中索引的時候查詢速度是非常慢的,隨便乙個查詢本地大概是1s左右,如:

select review_time,customer_id,users_id from review where customer_id='50259' and users_id='1269' and s_id='215'
此處我們建立乙個聯合索引,如下:

在用上面同樣的sql查詢,在命中索引的情況下速度提公升是非常快的,

首先在建立聯合索引的時候遵循的是最左原則,即從最坐開始匹配,並且必須有最左的乙個才能命中,如:

建立乙個索引內喊三個字段(可以看成三個索引,但並不是方便理解) s(a b c),在條件查詢的時候 必須是and,or也不能命中索引,where 後的條件 必須是(a),(ab),(abc),(ac)才能命中索引。

此文章是自己理解和總結,若有不對的地方請勞煩指出謝謝!

mysql聯合索引命中條件

轉於 首先明確 為什麼要用聯合索引?對於查詢語句 select e.from e where e.e1 1 and e.e3 2 涉及到兩列,這個時候我們一般採用乙個聯合索引 e1,e3 而不用兩個單列索引,這是因為一條查詢語句往往應為mysql優化器的關係只用乙個索引,就算你有兩個索引,他也只用乙...

MySql建立聯合索引

首先建立乙個表 create table t1 id int primary key,username varchar 20 password varchar 20 建立單個索引的語法 create index 索引名 on 表名 欄位名 索引名一般是 表名 欄位名 給id建立索引 create i...

關於mysql聯合索引

create table uniontest id int 11 not null auto increment,menuname varchar 50 default null,url varchar 200 default null,primary key id unique key u ind...