MySQL 走多個索引是指在查詢語句中,使用多個索引來進(jìn)行加速。一般情況下,MySQL 每次只能使用一個索引,但在某些特定情況下,可以利用聯(lián)合索引來進(jìn)行查詢優(yōu)化。
下面我們通過一個示例來說明 MySQL 如何走多個索引。
-- 假設(shè)我們有一張用戶信息表 user_info,表結(jié)構(gòu)如下: CREATE TABLE `user_info` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) NOT NULL, `age` int(11) NOT NULL, `gender` varchar(10) NOT NULL, `phone` varchar(20) NOT NULL, `address` varchar(100) NOT NULL, PRIMARY KEY (`id`), KEY `idx_name_age`(`name`, `age`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; -- 假設(shè)我們需要查詢姓名為張三,年齡為18歲的用戶信息,可以使用以下 SQL 語句: SELECT * FROM user_info WHERE name='張三' AND age=18;
在這個查詢語句中,我們需要使用 name 和 age 兩個字段的索引。如果只使用其中一個索引,效果不佳。因此,我們需要使用聯(lián)合索引來進(jìn)行查詢優(yōu)化。
創(chuàng)建聯(lián)合索引的 SQL 語句如下:
ALTER TABLE user_info ADD INDEX idx_name_age(name, age);
創(chuàng)建聯(lián)合索引后,再次執(zhí)行查詢語句,MySQL 會自動使用聯(lián)合索引進(jìn)行查詢優(yōu)化,提高查詢效率。
需要注意的是,如果查詢語句中使用了其他字段,如 gender、phone、address 等,MySQL 將無法使用聯(lián)合索引進(jìn)行查詢優(yōu)化。
總的來說,MySQL 走多個索引能夠提高查詢效率,但需要根據(jù)具體情況來決定是否使用聯(lián)合索引。