久久久网中文字幕_精品国产电影自在免费观看_中文字幕电影亚洲精品_亚洲色精品Aⅴ一区区三区

?
徐州北大青鳥
當(dāng)前位置: 主頁(yè) > 學(xué)在青鳥 > 編程技巧 >

怎樣才能寫出人類高質(zhì)量的SQL語句?

時(shí)間:2021-09-03 10:58來源:未知 作者:代碼如詩(shī) 點(diǎn)擊:
1、查詢中盡量避免使用SELECT * 以及加上LIMIT限制 當(dāng)服務(wù)器響應(yīng)客戶端請(qǐng)求時(shí),客戶端必須完整的接收整個(gè)返回結(jié)果,而不能簡(jiǎn)單的只取前面幾條結(jié)果,然后讓服務(wù)器停止發(fā)送。查詢應(yīng)盡
1、查詢中盡量避免使用SELECT * 以及加上LIMIT限制
 
當(dāng)服務(wù)器響應(yīng)客戶端請(qǐng)求時(shí),客戶端必須完整的接收整個(gè)返回結(jié)果,而不能簡(jiǎn)單的只取前面幾條結(jié)果,然后讓服務(wù)器停止發(fā)送。查詢應(yīng)盡可能只返回必要數(shù)據(jù),減小通信數(shù)據(jù)包大小和數(shù)量,提高效率。
 
2、IN 和 NOT IN 要慎用,會(huì)導(dǎo)致全表掃描。
 
MySQL優(yōu)化器會(huì)選擇代價(jià)最小的方式執(zhí)行,IN和NOT IN 都可能索引失效,不是絕對(duì)的。
 
3、LIKE 導(dǎo)致全表掃描
 
LIKE導(dǎo)致索引失效是因?yàn)闆]遵循最佳左前綴法則。字符串B-Tree排序方式:先按照第一個(gè)字母排序,如果第一個(gè)字母相同,就按照第二個(gè)字母排序,以此類推。
 
%號(hào)放右邊
 
由于B-Tree的索引順序,是按照首字母的大小進(jìn)行排序,前綴匹配又是匹配首字母。所以可以在B+樹上進(jìn)行有序的查找,查找首字母符合要求的數(shù)據(jù)。所以有些時(shí)候可以用到索引。
 
4、聯(lián)合索引需遵循最佳左前綴法則
 
GLS_CODE,BARCODE,SKU_ID 創(chuàng)建了聯(lián)合索引,當(dāng)查詢語句where條件中沒有GLS_CODE列不會(huì)走聯(lián)合索引。創(chuàng)建這種多列聯(lián)合索引時(shí),列的順序非常重要。
 
B-Tree聯(lián)合索引組合順序與創(chuàng)建時(shí)列的順序是一樣的,第一個(gè)字段列的順序是確定的,其他列的順序都是不確定的。B-Tree索引的限制,如果查詢不是按照索引創(chuàng)建時(shí)的順序,則無法使用索引。
 
在查詢中where條件里存在聯(lián)合索引第一列,順序不一致也是可以走索引的。這里是因?yàn)镸ySQL優(yōu)化器會(huì)對(duì)查詢重新排序。
 
5、不要在索引列上做任何操作
 
索引列存在計(jì)算、函數(shù)、類型轉(zhuǎn)換,會(huì)導(dǎo)致索引失效進(jìn)行全表掃描。
 
6、is null,is not null可能導(dǎo)致索引失效
 
7、要注意where,order by,group by后面的列,多表關(guān)聯(lián)的列是否已加索引,優(yōu)先考慮組合索引
 
8、where后面的列要注意隱式轉(zhuǎn)換,會(huì)導(dǎo)致索引失效
 
不加單引號(hào)時(shí),是字符串跟數(shù)字的比較,它們類型不匹配,MySQL會(huì)做隱式的類型轉(zhuǎn)換,把它們轉(zhuǎn)換為浮點(diǎn)數(shù)再做比較,最后導(dǎo)致索引失效。
試聽課
(責(zé)任編輯:代碼如詩(shī))
------分隔線----------------------------
欄目列表
推薦內(nèi)容