成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

mysql 字段索引的問題

瀏覽:164日期:2022-06-13 18:06:48

問題描述

在sf看到篇文章里面有這么一段關(guān)于數(shù)據(jù)表索引的

KEY `idx_status_date` (`status`,`date`)

我想問下 上面的寫法 和下面的寫法 有什么區(qū)別么?

KEY `status` (`status`),KEY `date` (`date`)

問題解答

回答1:

一個(gè)是組合索引 一個(gè)單個(gè)字段建立索引 建議你搜索下 組合索引和單個(gè)索引類似的文章,主要這個(gè)問題解釋起來文字太多,你自己去看下網(wǎng)上資料!

回答2:

組合索引跟單字段索引有很大不同 , 組合索引有順序的組合索引對(duì)于搜索條件為

status = 0 AND date= 'XXXX'或者status = 0這兩種情況都有效

但是對(duì)于date='XXX'的話就沒什么用了而且組合索引只能有一個(gè)范圍搜索,這個(gè)如果要說起碼要很長, 抽空看看'高性能MySQL'吧 , 里面有介紹

回答3:

KEY idx_status_date (status,date)組合索引能說為組合,當(dāng)然是組合使用的使用才能最大生效第一,組合索引必定有順序之分就像上面那個(gè),status和date作為組合索引在where status = ’1’ and date = ’2017-01-01’的時(shí)候,組合索引就會(huì)生效。但假如你的搜索條件中,date在status前面,那么索引只會(huì)生效一部分因?yàn)閙ysql檢測到status作為索引,但無法使用date索引

而單個(gè)索引就更好理解只有你搜索字段哪個(gè)建立索引,哪個(gè)生效

你可以使用explian 看mysql語句索引使用情況

相關(guān)文章: