在某些情況下,我們給表添加的索引mysql的優化器並不認爲他是高效的,但經過我們使用explain關鍵字發現,我們自己添加的索引的查詢效率要高,這時候,我們就可以使用 FORCE INDEX(index_name)語法來強制指定我們自己創建的某個索引。
示例:
有表如下:
CREATE TABLE `tb_user` (
`id` bigint(20) NOT NULL,
`user_name` varchar(32) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `user_name` (`user_name`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
我們先根據id正常查詢,如下:
SELECT id,user_name FROM tb_user WHERE id = 1;
使用explain關鍵字分析,如下:
EXPLAIN SELECT id,user_name FROM tb_user WHERE id = 1;
可以發現,這次查詢我們使用的是主鍵索引。
我們可以使用FORCE INDEX(index_name)來強制指定索引,如下:
EXPLAIN SELECT id, user_name FROM tb_user FORCE INDEX(user_name) WHERE id = 1
可以看到,我們成功指定了其他索引。
以上的例子不太切合實際,主要是講怎麼使用FORCE INDEX(index_name)來強制指定索引,大家使用的時候還是要結合實際情況來看。
歡迎關注我的個人公衆號“笑笑是一個碼農”,第一時間獲取最新文章。
您的關注,就是支持我持續寫作的最大動力!
還可以免費領取前後端全站學習視頻資料呦~
個人微信號,如需添加微信,請備註來源,因爲媽媽從小就告訴我不要隨便跟陌生人聊天!(嘿嘿~)