Mysql查詢時強制指定索引

在某些情況下,我們給表添加的索引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)來強制指定索引,大家使用的時候還是要結合實際情況來看。

 

 

 


歡迎關注我的個人公衆號“笑笑是一個碼農”,第一時間獲取最新文章。

您的關注,就是支持我持續寫作的最大動力!

還可以免費領取前後端全站學習視頻資料呦~

個人微信號,如需添加微信,請備註來源,因爲媽媽從小就告訴我不要隨便跟陌生人聊天!(嘿嘿~)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章