Mysql影片教學欄位介紹MySQL的開發規格
推薦(免費):mysql影片教學
#.
禁止在線上做資料庫壓力測試
臨時庫、表名必須以tmp為前綴,並以日期為後綴
拆分大欄位和翻身顧問頻率低的字段,分離冷熱資料
用HASH進散表,表名後綴使進制數,下標從0開始
依日期時間分錶需符合
YYYY[MM][DD][HH]#禁止在資料庫中儲存明文密碼,把密碼加密後儲存
用好數值類型欄位
字節 | 最小值
#最大值 |
||
tinyint | 1 | ||
-128 | #127 | ##127 | |
smallint | 2 | -32768 | 32767 |
#mediumint | 3 | #-8388608 | #8388607 |
如果數值欄位沒有那麼大,就不要用bigint
#儲存ip最好用int儲存而不是char(15)
#不允許使用enum
避免使用null欄位
null欄位很難查詢一花,null欄位的索引需要額外空間,null欄位的複合索引無效。
#索引規格
#單一表中的索引數量不超過5個
單一索引中的字段數不超過5個
#對字串使用前綴索引,前綴索引長度不超過8個字符
建議優先考慮前綴索引,必要可新增偽列並建立索引
表必須有主鍵
不使用更新頻繁的列作為主鍵
盡量不選擇字串列作為主鍵
不使用uuid md5 hash這些作為主鍵-太離散
預設使非空的唯一鍵作為主鍵
建議選擇自增或發號器
重要的SQL必須必須被索引,例如update、delete語句的where條件列、order by、group by、distinct的欄位
多表join的欄位注意
<p>1.区分度最大的字段放在前面<br>2.核SQL优先考虑覆盖索引<br>3.避免冗余和重复索引<br>4.索引要综合评估数据密度和分布以及考虑查询和更新比例<br></p>
#索引禁忌
<p>1.不在低基数列上建立索引、例如性别<br>2.不在索引列记性数学运算和函数运算<br></p>
盡量不使用外鍵
<p>1.外键用来保护参照完整性,可以业务端实现<br>2.对父表和字表的操作会互相影响,降低可用性<br></p>
索引命名
<p>1.非唯一索引必须以 inx_字段1_字段22.唯一索引必须以 uniq_字段1_字段2<br></p>
索引欄位的預設值不能為空。 null非常影響索引的查詢效率。
重複檢視和資料表相關的SQL,符合最左字首的特點建立索引。多條欄位重複的索引,要修改語句條件欄位的順序,為其建立一個聯合索引,減少索引數量。
能使用唯一索引就使用唯一索引
#研發要經常使用explain,如果發現索引選擇性差,必須讓他們學會使用hint 。
SQL規格
#SQL語句盡可能簡單
事物要簡單,整個事物的時間產生過度不要太長
避免使用觸發器、函數、預存程序
降低業務耦合度,為sacle out,sharding留有餘地
#避免在資料庫中進行數學運算,mysql不擅長數學運算和邏輯判斷
禁止將order by rand
以上是記錄MySQL開發規範的詳細內容。更多資訊請關注PHP中文網其他相關文章!