您好,登錄后才能下訂單哦!
MYSQl規范有哪些,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
不在數據庫做運算:cpu計算務必移至業務層
控制單表數據量:單表記錄控制在1000w
控制列數量:字段數控制在20以內
平衡范式與冗余:為提高效率犧牲范式設計,冗余數據
拒絕3B:拒絕大sql,大事物,大批量
varchar是變長存儲的,所以實際開發中我們一般都把varchar的寬度設為最長255,反正你沒用完它也不會浪費空間。
避免使用NULL字段
NULL字段很難查詢優化
NULL字段的索引需要額外空間
NULL字段的復合索引無效
少用text/blob
varchar的性能會比text高很多
實在避免不了blob,請拆表
謹慎合理使用索引
改善查詢、減慢更新
索引一定不是越多越好(能不加就不加,要加的一定得加)
覆蓋記錄條數過多不適合建索引,例如“性別”
不在索引做列運算
bad case:select id where age +1 = 10;
不用外鍵,請由程序保證約束
sql語句盡可能簡單
一條sql只能在一個cpu運算
大語句拆小語句,減少鎖時間
一條大sql可以堵死整個庫
簡單的事務,事務時間盡可能短
避免使用trig/func
觸發器、函數不用
客戶端程序取而代之
避免負向%
limit高效分頁,limit越大,效率越低
少用連接join
庫名,表名,列名必須用小寫,采用下劃線分隔
abc,Abc,ABC都是給自己埋坑
庫名,表名,列名必須見名知義,長度不要超過32字符
tmp,wushan誰TM知道這些庫是干嘛的
建議將大字段,訪問頻度低的字段拆分到單獨的表中存儲,分離冷熱數據
禁止在where條件列使用函數或者表達式
禁止大表JOIN和子查詢
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。