索引使用技巧及sql書寫規(guī)范

一. 了解索引的種類和用法(這里只探究BTree索引的用法)

1. 唯一索引

唯一索引不允許兩行具有相同的索引值对途。如果是多列構(gòu)成的唯一索引,則要求多列的組合值不能出現(xiàn)相同

2. 組合索引

組合索引又稱復(fù)合索引溪掀,由多列構(gòu)成。在使用組合索引時啡氢,需要保證復(fù)合索引的第一列在語句中使用了索引菩暗,在合適的場景可以避免回表查詢掰曾,在索引中完成查詢。

二. 建立索引的技巧

1.為主鍵停团,外鍵以及對記錄起明顯標識作用的字段建立索引

這些字段通常會用作條件篩選旷坦,表連接,以及排序分組佑稠,為這些字段加上單個索引可以縮短sql執(zhí)行的時間

2.在業(yè)務(wù)相近的字段上建立組合索引

將一些經(jīng)常出現(xiàn)在一個結(jié)果集中的字段按照順序建立組合索引秒梅,通常把篩選效果明顯的字段放在組合索引的前面。

3.在必須要前導(dǎo)模糊查詢的字段在建立全文索引

前導(dǎo)模糊查詢 '%str','%str%'會導(dǎo)致普通索引失效舌胶,要想使用索引需要建立全文索引(FULLTEXT INDEX)

4.在不合適的字段上不建索引

一些字段不適用用來建立索引捆蜀,非但不會優(yōu)化查詢效率,反而會使查詢效率變得十分低下幔嫂。
如:
篩選效果不明顯的字段: 篩選后的結(jié)果集相對總數(shù)據(jù)量占比很大時漱办,需要重復(fù)的去索引樹中檢索到行數(shù)據(jù)標識ROWID,然后去表中取出數(shù)據(jù)婉烟。這樣的查詢效率甚至會比全表掃描更低。
字段長度非常大的字段: 備注暇屋,大文本等類型的字段在建立索引時似袁,需要消耗很大的空間去存放索引樹

三. 什么情況下會使用索引

COLUMN_INDEX =(>,>=,<,<=) ?
COLUMN_INDEX BETWEEN ? AND ?
COLUMN_INDEX IN (?,?,?)
COLUMN_INDEX LIKE 'str?' (后導(dǎo)模糊查詢)
TABLE1.COLUMN_INDEX = TABLE2.COLUMN_INDEX (表關(guān)聯(lián))

書寫SQL的規(guī)范

1. 會引起索引失效的SQL

使用not,!=昙衅,
使用前導(dǎo)模糊查詢'%str'扬霜,‘%str%’,
對索引字段使用函數(shù) tip: where id + 1 = 123
對索引字段進行類型轉(zhuǎn)換 tip: where type = 2 (type 為varchar 類型而涉,此時type_index索引失效)
使用order by排序時著瓶,tip: 使用普通索引時,如果結(jié)果集為 * 時啼县,不走索引材原;使用復(fù)合索引,如果sql語句使用索引字段的順序和復(fù)合索引字段順序不一致時季眷,不走索引

2. 一些低效的sql

整理好后繼續(xù)發(fā)布

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末余蟹,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子子刮,更是在濱河造成了極大的恐慌威酒,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件挺峡,死亡現(xiàn)場離奇詭異葵孤,居然都是意外死亡,警方通過查閱死者的電腦和手機橱赠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進店門尤仍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人病线,你說我怎么就攤上這事吓著。” “怎么了送挑?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵绑莺,是天一觀的道長。 經(jīng)常有香客問我惕耕,道長纺裁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任司澎,我火速辦了婚禮欺缘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘挤安。我一直安慰自己谚殊,他們只是感情好,可當我...
    茶點故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布蛤铜。 她就那樣靜靜地躺著嫩絮,像睡著了一般丛肢。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上剿干,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天蜂怎,我揣著相機與錄音,去河邊找鬼置尔。 笑死杠步,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的榜轿。 我是一名探鬼主播幽歼,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼差导!你這毒婦竟也來了试躏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤设褐,失蹤者是張志新(化名)和其女友劉穎颠蕴,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體助析,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡犀被,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了外冀。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片寡键。...
    茶點故事閱讀 38,716評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖雪隧,靈堂內(nèi)的尸體忽然破棺而出西轩,到底是詐尸還是另有隱情,我是刑警寧澤脑沿,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布藕畔,位于F島的核電站,受9級特大地震影響庄拇,放射性物質(zhì)發(fā)生泄漏注服。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一措近、第九天 我趴在偏房一處隱蔽的房頂上張望溶弟。 院中可真熱鬧,春花似錦瞭郑、人聲如沸辜御。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽擒权。三九已至苇本,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間菜拓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工笛厦, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留纳鼎,地道東北人。 一個月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓裳凸,卻偏偏與公主長得像贱鄙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子姨谷,可洞房花燭夜當晚...
    茶點故事閱讀 43,612評論 2 350

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