數(shù)據(jù)存儲(chǔ) - MySQL 索引使用的注意事項(xiàng)

學(xué)習(xí)完整課程請(qǐng)移步 互聯(lián)網(wǎng) Java 全棧工程師

  • 索引不會(huì)包含有 NULL 的列
    只要列中包含有 NULL 值蔑穴,都將不會(huì)被包含在索引中,復(fù)合索引中只要有一列含有 NULL 值酥诽,那么這一列對(duì)于此符合索引就是無(wú)效的匙隔。

  • 使用短索引
    對(duì)串列進(jìn)行索引,如果可以就應(yīng)該指定一個(gè)前綴長(zhǎng)度涌韩。例如畔柔,如果有一個(gè) char(255) 的列,如果在前 10 個(gè)或 20 個(gè)字符內(nèi)臣樱,多數(shù)值是唯一的靶擦,那么就不要對(duì)整個(gè)列進(jìn)行索引。短索引不僅可以提高查詢速度而且可以節(jié)省磁盤空間和 I/O 操作雇毫。

  • 索引列排序
    MySql 查詢只使用一個(gè)索引奢啥,因此如果 where 子句中已經(jīng)使用了索引的話,那么 order by 中的列是不會(huì)使用索引的嘴拢。因此數(shù)據(jù)庫(kù)默認(rèn)排序可以符合要求的情況下不要使用排序操作桩盲,盡量不要包含多個(gè)列的排序,如果需要最好給這些列建復(fù)合索引席吴。

  • like 語(yǔ)句操作
    一般情況下不鼓勵(lì)使用 like 操作赌结,如果非使用不可,注意正確的使用方式孝冒。like ‘%aaa%’ 不會(huì)使用索引柬姚,而 like ‘a(chǎn)aa%’ 可以使用索引。

  • 不要在列上進(jìn)行運(yùn)算

  • 不使用 NOT IN 庄涡、<>量承、!=操作,但 < , <= 撕捍,= 拿穴,> , >= , BETWEEN , IN 是可以用到索引的

  • 索引要建立在經(jīng)常進(jìn)行select操作的字段上
    這是因?yàn)椋绻@些列很少用到忧风,那么有無(wú)索引并不能明顯改變查詢速度默色。相反,由于增加了索引狮腿,反而降低了系統(tǒng)的維護(hù)速度和增大了空間需求腿宰。

  • 索引要建立在值比較唯一的字段上

  • 對(duì)于那些定義為 textimagebit 數(shù)據(jù)類型的列不應(yīng)該增加索引缘厢。因?yàn)檫@些列的數(shù)據(jù)量要么相當(dāng)大吃度,要么取值很少

  • wherejoin 中出現(xiàn)的列需要建立索引

  • where 的查詢條件里有不等號(hào) (where column != …) , MySql 將無(wú)法使用索引

  • 如果 where 字句的查詢條件里使用了函數(shù)(如:where DAY(column)=…), MySql 將無(wú)法使用索引

  • join 操作中(需要從多個(gè)數(shù)據(jù)表提取數(shù)據(jù)時(shí)),MySql 只有在主鍵和外鍵的數(shù)據(jù)類型相同時(shí)才能使用索引贴硫,否則及時(shí)建立了索引也不會(huì)使用

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末规肴,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子夜畴,更是在濱河造成了極大的恐慌拖刃,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,826評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件贪绘,死亡現(xiàn)場(chǎng)離奇詭異兑牡,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)税灌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門均函,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人菱涤,你說(shuō)我怎么就攤上這事苞也。” “怎么了粘秆?”我有些...
    開封第一講書人閱讀 164,234評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵如迟,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我攻走,道長(zhǎng)殷勘,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,562評(píng)論 1 293
  • 正文 為了忘掉前任昔搂,我火速辦了婚禮玲销,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘摘符。我一直安慰自己贤斜,他們只是感情好策吠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,611評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著瘩绒,像睡著了一般猴抹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上草讶,一...
    開封第一講書人閱讀 51,482評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音炉菲,去河邊找鬼堕战。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拍霜,可吹牛的內(nèi)容都是我干的嘱丢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,271評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼祠饺,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼越驻!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起道偷,我...
    開封第一講書人閱讀 39,166評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤缀旁,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后勺鸦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體并巍,經(jīng)...
    沈念sama閱讀 45,608評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,814評(píng)論 3 336
  • 正文 我和宋清朗相戀三年换途,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了懊渡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,926評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡军拟,死狀恐怖剃执,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情懈息,我是刑警寧澤肾档,帶...
    沈念sama閱讀 35,644評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站辫继,受9級(jí)特大地震影響阁最,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜骇两,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,249評(píng)論 3 329
  • 文/蒙蒙 一速种、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧低千,春花似錦配阵、人聲如沸馏颂。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)救拉。三九已至,卻和暖如春瘫拣,著一層夾襖步出監(jiān)牢的瞬間亿絮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工麸拄, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留派昧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,063評(píng)論 3 370
  • 正文 我出身青樓拢切,卻偏偏與公主長(zhǎng)得像蒂萎,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子淮椰,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,871評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容