MySQL使用規範

1、    表設計類數據庫

強制類規範函數

    1. 建立表的存儲引擎必須是InnoDB。設計

    2. 每一個表必須顯式的指定一個主鍵。日誌

    3. 不容許使用聯合主鍵。對象

    4. 不容許使用外鍵。排序

    5. 不容許存在和主鍵重複的索引。索引

    6. 自增加字段必須是主鍵或惟一索引。圖片

    7. 不容許在數據庫中存儲諸如圖片,影像之類的二進制數據。it

    8. 不容許使用TEXT類型字段table

    9. 建表時不容許顯式的指定除了utf8以外的其餘字符集。

    10. 對於全部聲明爲NOT NULL的字段,必須顯式指定默認值。

11. 必須包含時間戳字段DataChange_LastTime,定義默認值爲CURRENT_TIMESTAMP和on update CURRENT_TIMESTAMP,並添加索引。

12.不要使用系統或者常見的名稱做爲表名 如order

 

建議類規範

    1. 建議使用自增加字段做爲主鍵。

    2. 對較長的字符類型,若是須要索引,則創建前綴索引。

    3. 不建議在數據庫存放日誌。

    4. 建議將字段都定義爲not null。

    5. 選用能知足需求的最小類型。

    6. 避免使用保留字命名DB對象。

    7. 對錶和字段都添加備註說明。

 

2、    SQL類

強制類規範

    1. 禁止使用子查詢。

    2. 禁止使用select *,必須指定須要的字段。

    3. update/delete只能單表操做,不容許多表關聯,不容許用子查詢,且必定要帶where條件。

    4. insert語句要顯式指定插入的列名,且不容許使用insert .... select的形式。

    5. 不容許使用存儲過程、存儲函數、觸發器和視圖。

    6. 單條查詢語句中,不容許出現多於一次的join。

    7. 不要在where後的篩選字段上作運算。

 

建議類規範

    1. 儘可能不要在數據庫裏作運算。

    2. 儘可能不要作‘%’前綴模糊查詢,如 like '%name'。

    3. 不要使用大偏移量的limit分頁。

    4. 鏈接MySQL不要設置成autocommit=0。

    5. 批量insert語句最好採用bulk insert的方法,如insert into table(xxx) values (xxx),(xxx)。

    6. update/delete儘可能根據主鍵進行操做。

    7.  儘可能減小count()的使用,尤爲是用來頻繁獲取全表記錄數。

    8. 使用group by時,如無排序的需求,建議加order by null。

    9.  Join中使用的關聯字段使用統一數據類型。

相關文章
相關標籤/搜索