分享mysql注意點

努力學習的程式碼狗發表於2020-10-18

都是我遇到的問題,如果有其他的,多多指教
使用mysql注意點:
1,like中的%代表0個或者多個字元,_表示一個字元
2,mysql優化distinct,底層是group by,並與order by聯合使用
3,顯示一段資料的前50行,使用limit 0,50
4,檢視資料表的儲存計劃,show create table 表名
5,numeric decimal用來儲存金錢,提高精度,一般使用的是decimal(9,2),‘9’表示資料用於儲存值的總的小數位數一共有9位,‘2’表示儲存小數點後的位數,所以表示該欄位的儲存範圍是-9999999.99~9999999.99
6,儲存時間的時候使用data,datatime,不要使用varchar,varchar型別佔用記憶體較大
7,儘量不要使用enmu型別儲存,該型別儲存資料時,會有預設索引,從1開始,如果儲存的是數值型別的時候,即容易造成查詢資料的時候使用enmu型別預設的索引來查詢,會造成資料混亂
8,資料庫的查詢儘量不要使用子查詢和join查詢,效率太低,在資料庫中查詢單表資料,在業務層中使用in來進行二次查詢
9,書寫sql的時候,防止sql注入(#會進行預編譯,可以有效的防止sql注入,而$是直接拼接字串,不能防止sql注入),書寫時,儘量不要省略"",’’
10,建立資料表的時候選擇合適的資料型別,優先考慮數字型別,其次是日期或者二進位制型別,最後是字串型別,而同級別的資料型別優先選擇佔用空間小的資料型別
欄位型別優先順序:整形>data,time>enum,char>varchar<blob,text
11,mysql中的外連線和內連線:
內連線:select* from 表a inner join 表b on a.id=b.id //表示表a和表b的交集
外連線:select* from 表a left join 表b on a.id=b.id //表示表a的所有資料和表b與表a之間id相等的部分,相當於a的全部資料和a,b表的交集

相關文章