MySQL 走多個索引是指在查詢語句中,使用多個索引來進行加速。一般情況下,MySQL 每次只能使用一個索引,但在某些特定情況下,可以利用聯合索引來進行查詢優化。
下面我們通過一個示例來說明 MySQL 如何走多個索引。
-- 假設我們有一張用戶信息表 user_info,表結構如下: 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; -- 假設我們需要查詢姓名為張三,年齡為18歲的用戶信息,可以使用以下 SQL 語句: SELECT * FROM user_info WHERE name='張三' AND age=18;
在這個查詢語句中,我們需要使用 name 和 age 兩個字段的索引。如果只使用其中一個索引,效果不佳。因此,我們需要使用聯合索引來進行查詢優化。
創建聯合索引的 SQL 語句如下:
ALTER TABLE user_info ADD INDEX idx_name_age(name, age);
創建聯合索引后,再次執行查詢語句,MySQL 會自動使用聯合索引進行查詢優化,提高查詢效率。
需要注意的是,如果查詢語句中使用了其他字段,如 gender、phone、address 等,MySQL 將無法使用聯合索引進行查詢優化。
總的來說,MySQL 走多個索引能夠提高查詢效率,但需要根據具體情況來決定是否使用聯合索引。