sql優(yōu)化

sql語(yǔ)句優(yōu)化

1.使用limit對(duì)查詢結(jié)果的記錄進(jìn)行限定
2.避免select,只取具體字段
3.使用連接
(join)代替子查詢
4.拆分大的
deleteinsert語(yǔ)句
5.分組統(tǒng)計(jì)可以禁止排序(指定
ORDER BY NULL*避免排序結(jié)果的消耗)

SELECT goods_id,count(*) FROM t GROUP BY goods_id ORDER BY NULL;
  1. 禁止不必要的ORDER BY排序
  2. 盡量不要超過三個(gè)表join

選擇合適的數(shù)據(jù)類型

1.使用簡(jiǎn)單的數(shù)據(jù)類型,減少開銷(eg:只含數(shù)值信息的字段盡量不要設(shè)計(jì)為字符型)
2.使用合理的字段屬性長(zhǎng)度辫封、固定的數(shù)據(jù)長(zhǎng)度(不要varchar
3.盡可能使用not null定義字段
4.盡量少使用text

選擇合適的索引列

1.重新頻繁的列,在where、group by、order by捺信、on從句中出現(xiàn)的列
2.where條件中<豪嚎,<=,=鹃彻,>,>=妻献,between蛛株,in,以及l(fā)ike 字符串+通配符(%)出現(xiàn)的列
3.長(zhǎng)度小的列育拨,索引字段越小越好(數(shù)據(jù)庫(kù)的存儲(chǔ)單位是頁(yè)谨履,一頁(yè)中能存的數(shù)據(jù)越多越好)
4.離散度大(不同的值多)的列,放在聯(lián)合索引前面

避免索引失效

1.字段類型轉(zhuǎn)換(如字符串類型的不用引號(hào)熬丧,數(shù)字類型的用引號(hào)等笋粟,這有可能會(huì)用不到索引導(dǎo)致全表掃描)
2.根據(jù)聯(lián)合索引的非首字段單獨(dú)查詢用不到索引
3.字段前加函數(shù)/加減運(yùn)算,否則會(huì)導(dǎo)致索引失效
如下面語(yǔ)句將進(jìn)行全表掃描:

select id from t where num/2=100
SELECT * FROM t WHERE YEAR(d) >= 2016

可改為:

select id from t where num=100*2
SELECT * FROM t WHERE d >= '2016-01-01';

4.搜索嚴(yán)禁左模糊或者全模糊

select name from t where name like %s
select name from t where name like %s%
  1. 避免在 where 子句中使用!=<>操作符析蝴,否則將引擎放棄使用索引而進(jìn)行全表掃描
select id from t where num != 2

可改為

select id from t where num > 2 and  num < 2

6.避免在where子句中對(duì)字段進(jìn)行 **null **值判斷害捕,否則將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描

select id from t where num is null

可改為

select id from t where num=0

7.用IN或UNION來(lái)替換OR低效查詢
SELECT * FROM t WHERE LOC_ID = 10 OR LOC_ID = 20 OR LOC_ID = 30;
可改為

SELECT * FROM t WHERE LOC_IN IN (10,20,30);

對(duì)于連續(xù)的數(shù)值,能用 between 就不要用** in **

select id from t where num between 1 and 3

8.刪除表所有記錄用** truncate**闷畸,不要用 delete

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末尝盼,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子佑菩,更是在濱河造成了極大的恐慌盾沫,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,948評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倘待,死亡現(xiàn)場(chǎng)離奇詭異疮跑,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)凸舵,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,371評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門祖娘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說我怎么就攤上這事渐苏∠瞥保” “怎么了?”我有些...
    開封第一講書人閱讀 157,490評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵琼富,是天一觀的道長(zhǎng)仪吧。 經(jīng)常有香客問我,道長(zhǎng)鞠眉,這世上最難降的妖魔是什么薯鼠? 我笑而不...
    開封第一講書人閱讀 56,521評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮械蹋,結(jié)果婚禮上出皇,老公的妹妹穿的比我還像新娘。我一直安慰自己哗戈,他們只是感情好郊艘,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,627評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著唯咬,像睡著了一般纱注。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上胆胰,一...
    開封第一講書人閱讀 49,842評(píng)論 1 290
  • 那天狞贱,我揣著相機(jī)與錄音,去河邊找鬼蜀涨。 笑死斥滤,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的勉盅。 我是一名探鬼主播,決...
    沈念sama閱讀 38,997評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼顶掉,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼草娜!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起痒筒,我...
    開封第一講書人閱讀 37,741評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤宰闰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后簿透,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體移袍,經(jīng)...
    沈念sama閱讀 44,203評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,534評(píng)論 2 327
  • 正文 我和宋清朗相戀三年老充,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了葡盗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,673評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡啡浊,死狀恐怖觅够,靈堂內(nèi)的尸體忽然破棺而出胶背,到底是詐尸還是另有隱情,我是刑警寧澤喘先,帶...
    沈念sama閱讀 34,339評(píng)論 4 330
  • 正文 年R本政府宣布钳吟,位于F島的核電站,受9級(jí)特大地震影響窘拯,放射性物質(zhì)發(fā)生泄漏红且。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,955評(píng)論 3 313
  • 文/蒙蒙 一涤姊、第九天 我趴在偏房一處隱蔽的房頂上張望暇番。 院中可真熱鬧,春花似錦砂轻、人聲如沸奔誓。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,770評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)厨喂。三九已至,卻和暖如春庄呈,著一層夾襖步出監(jiān)牢的瞬間蜕煌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,000評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工诬留, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留斜纪,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,394評(píng)論 2 360
  • 正文 我出身青樓文兑,卻偏偏與公主長(zhǎng)得像盒刚,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子绿贞,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,562評(píng)論 2 349

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