麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發(fā) > 綜合 > 正文

8個SQL語句常用優(yōu)化技巧

2024-07-21 02:53:11
字體:
供稿:網(wǎng)友
要提高SQL語句的執(zhí)行效率,最常見的方法就是建立索引,以及盡量避免全表掃描。在本章MySQL教程中,UncleToo給大家整理一些常見的SQL優(yōu)化技巧,避免全表掃描。一個簡單的優(yōu)化,也許能讓你的SQL執(zhí)行效率提高幾倍,甚至幾十倍。1、避免在where子句中使用 is null 或 is not null 對字段進行判斷。如:select id from table where name is null在這個查詢中,就算我們?yōu)?name 字段設(shè)置了索引,查詢分析器也不會使用,因此查詢效率底下。為了避免這樣的查詢,在數(shù)據(jù)庫設(shè)計的時候,盡量將可能會出現(xiàn) null 值的字段設(shè)置默認(rèn)值,這里如果我們將 name 字段的默認(rèn)值設(shè)置為0,那么我們就可以這樣查詢:select id from table where name = 0

2、避免在 where 子句中使用 or來鏈接條件。如:select id from table where name = 'UncleToo' or name = 'php'這種情況,我們可以這樣寫:select id from table where name = 'UncleToo'union allselect id from table where name = 'PHP'

3、避免在 where 子句中使用 != 或 <> 操作符。如:select name from table where id <> 0數(shù)據(jù)庫在查詢時,對 != 或 <> 操作符不會使用索引,而對于 < 、 <= 、 = 、 > 、 >= 、 BETWEEN AND,數(shù)據(jù)庫才會使用索引。因此對于上面的查詢,正確寫法應(yīng)該是:select name from table where id < 0union allselect name from table where id > 0 4、少用 in 或 not in。雖然對于 in 的條件會使用索引,不會全表掃描,但是在某些特定的情況,使用其他方法也許效果更好。如:select name from table where id in(1,2,3,4,5)像這種連續(xù)的數(shù)值,我們可以使用 BETWEEN AND,如:select name from table where id between 1 and 55、注意 like 中通配符的使用。下面的語句會導(dǎo)致全表掃描,盡量少用。如:select id from table where name like'%UncleToo%'或者select id from table where name like'%UncleToo'而下面的語句執(zhí)行效率要快的多,因為它使用了索引:select id from table where name like'UncleToo%'6、避免在 where 子句中對字段進行表達式操作。如:select name from table where id/2 = 100正確的寫法應(yīng)該是:select name from table where id = 100*27、避免在 where 子句中對字段進行函數(shù)操作。如:select id from table where substring(name,1,8) = 'UncleToo'或select id from table where datediff(day,datefield,'2014-07-17') >= 0這兩條語句中都對字段進行了函數(shù)處理,這樣就是的查詢分析器放棄了索引的使用。正確的寫法是這樣的:select id from table where name like'UncleToo%'或select id from table where datefield <= '2014-07-17'也就是說,不要在 where 子句中的 = 左邊進行函數(shù)、算術(shù)運算或其他表達式運算。8、在子查詢中,用 exists 代替 in 是一個好的選擇。如:select name from a where id in(select id from b) 如果我們將這條語句換成下面的寫法:select name from a where exists(select 1 from b where id = a.id)這樣,查詢出來的結(jié)果一樣,但是下面這條語句查詢的速度要快的多。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 午夜视频在线观 | 99精品视频一区二区 | 免费人成年短视频在线观看网站 | 亚洲一级电影在线观看 | 综合精品 | 国产精品99精品 | 在线播放免费av | 久久综合一区二区 | 国产亚洲网 | 欧美日韩精品中文字幕 | 国产精品视频六区 | 国产一区视频在线观看免费 | 日韩黄色片免费看 | 国内精品伊人久久久久网站 | 蜜桃网站在线观看 | 成人超碰 | 久在线观看福利视频69 | 亚洲天堂午夜 | 免费一区二区三区 | 欧美久久久久久久久 | 成人午夜久久 | 嫩嫩的freehdxxx| 欧美 日韩 国产 在线 | 亚洲嫩草av | 国产成人综合在线 | 久久99久久99免费视频 | 成人毛片100部免费观看 | 久久精品国产99国产精品澳门 | 一级做a爰片性色毛片2021 | 欧美精品欧美极品欧美激情 | 久久久久亚洲视频 | 亚洲成人福利在线 | 91丝袜 | 亚洲一区成人在线 | 日本中文视频 | 意大利av在线 | 二级大黄大片高清在线视频 | 麻豆传传媒久久久爱 | 中国洗澡偷拍在线播放 | 国产精品一区二区三区在线看 | 精品无吗乱吗av国产爱色 |