濮阳杆衣贸易有限公司

主頁 > 知識庫 > Mysql之組合索引方法詳解

Mysql之組合索引方法詳解

熱門標(biāo)簽:許昌外呼增值業(yè)務(wù)線路 宜賓全自動外呼系統(tǒng)廠家 廣東400企業(yè)電話申請流程 地圖標(biāo)注客戶付款 臨沂做地圖標(biāo)注 石家莊400電話辦理公司 申請400電話電話價格 咸陽防封電銷卡 新鄉(xiāng)智能外呼系統(tǒng)好處

對于任何DBMS,索引都是進(jìn)行優(yōu)化的最主要的因素。對于少量的數(shù)據(jù),沒有合適的索引影響不是很大,但是,當(dāng)隨著數(shù)據(jù)量的增加,性能會急劇下降。 

如果對多列進(jìn)行索引(組合索引),列的順序非常重要,MySQL僅能對索引最左邊的前綴進(jìn)行有效的查找。例如: 

假設(shè)存在組合索引(c1,c2),查詢語句select * from t1 where c1=1 and c2=2能夠使用該索引。查詢語句select * from t1 where c1=1也能夠使用該索引。但是,查詢語句select * from t1 where c2=2不能夠使用該索引,因為沒有組合索引的引導(dǎo)列,即,要想使用c2列進(jìn)行查找,必需出現(xiàn)c1等于某值。

舉例說明: 
創(chuàng)建兩張表book(圖書表)和bookclass(圖書分類表)

select b.ISBN FROM book b where b.CATEGORY_ID = 1; 

 

執(zhí)行時間為:0.053s

使用explain來分析一下該SQL: 

 

type = ALL Extra=Using where,全表查詢沒有使用索引。

explain顯示了mysql如何使用索引來處理select語句以及連接表??梢詭椭x擇更好的索引和寫出更優(yōu)化的查詢語句。

ALL 對于每個來自于先前的表的行組合,進(jìn)行完整的表掃描。如果表是第一個沒標(biāo)記const的表,這通常不好,并且通常在它情況下很差。通??梢栽黾痈嗟乃饕灰褂肁LL,使得行能基于前面的表中的常數(shù)值或列值被檢索出。

創(chuàng)建組合索引: 
create index index_isbn on book (CATEGORY_ID,ISBN) ;

再次執(zhí)行SQL,發(fā)現(xiàn)時間縮短到0.009s 

 

使用explain來分析一下該SQL: 

 

type = ref,Extra = Using index 使用了索引查詢。

ref 對于每個來自于前面的表的行組合,所有有匹配索引值的行將從這張表中讀取。如果聯(lián)接只使用鍵的最左邊的前綴,或如果鍵不是UNIQUE或PRIMARY KEY(換句話說,如果聯(lián)接不能基于關(guān)鍵字選擇單個行的話),則使用ref。如果使用的鍵僅僅匹配少量行,該聯(lián)接類型是不錯的。

到此這篇關(guān)于Mysql之組合索引方法詳解的文章就介紹到這了,更多相關(guān)Mysql之組合索引內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • MySql索引提高查詢速度常用方法代碼示例
  • MySQL索引失效的幾種情況匯總
  • 詳解MySQL 聚簇索引與非聚簇索引
  • Mysql索引性能優(yōu)化問題解決方案
  • 導(dǎo)致MySQL索引失效的一些常見寫法總結(jié)
  • MySQL索引的各種類型
  • MySQL性能優(yōu)化之如何高效正確的使用索引
  • MySQL索引的基本語法
  • MySQL選錯索引的原因以及解決方案

標(biāo)簽:鷹潭 鎮(zhèn)江 阜新 合肥 北京 貴州 臺灣 日照

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mysql之組合索引方法詳解》,本文關(guān)鍵詞  Mysql,之,組合,索引,方法,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mysql之組合索引方法詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Mysql之組合索引方法詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    深圳市| 彭水| 静宁县| 重庆市| 芮城县| 宁南县| 肥乡县| 藁城市| 白玉县| 醴陵市| 崇仁县| 霞浦县| 安平县| 永寿县| 平谷区| 南皮县| 广德县| 宣化县| 阳谷县| 奈曼旗| 平舆县| 亳州市| 溧阳市| 色达县| 隆林| 奎屯市| 广元市| 安西县| 邛崃市| 偏关县| 丁青县| 泽普县| 蒲城县| 凤庆县| 麟游县| 宣化县| 澄迈县| 佛坪县| 治多县| 西昌市| 三亚市|