學習阿里巴巴開發手冊-11

mysql數據庫

1.表達是與否概念的字段,必須使用 is_xxx 的方式命名,數據類型是 unsigned tinyint( 1 表示是,0 表示否),此規則同樣適用於 odps 建表。任何字段如果爲非負數,必須是 unsigned。表達邏輯刪除的字段名 is_deleted,1表示刪除,0表示未刪除

2.表名、字段名必須使用小寫字母或數字;禁止出現數字開頭,禁止兩個下劃線中間只出現數字。數據庫字段名的修改代價很大,因爲無法進行預發佈,所以字段名稱需要慎重考慮。windows下不區分大小寫,但是在linux下默認是區分大小寫。

3.表名不使用複數名

4.禁用保留字,如:desc、range、match、delayed 等

5.主鍵索引名:pk_字段名;

   唯一索引名:uk_字段名

   普通索引名:idx_字段名

6. 小數類型爲decimal,禁止使用float和double,存在精度損失問題,如果數據範圍超過decimal範圍,建議將數據拆分成整數和小數

7. 如果存儲的字符串長度幾乎相等,使用 CHAR 定長字符串類型

8. varchar 是可變長字符串,不預先分配存儲空間,長度不要超過 5000,如果存儲長度大於此值,定義字段類型爲 TEXT

    獨立出來一張表,用主鍵來對應,避免影響其它字段索引效率。

9.表必備三字段:id, gmt_create, gmt_modified。

   其中 id 必爲主鍵,類型爲 unsigned bigint、單表時自增、步長爲 1; 分表時改爲從TDDL Sequence 取值,確保分表之間的全局唯一。

   gmt_create,gmt_modified 的類型均爲date_time 類型。主動創建,被動更新

10.表的命名最好是“業務名稱_表的作用”

11.庫名與應用名稱儘量一致。如果修改字段含義或對字段表示的狀態追加時,需要及時更新字段註釋。

12.字段允許適當冗餘,以提高性能,但是必須考慮數據同步的情況。冗餘字段應遵循:

    1)不是頻繁修改的字段。

    2)不是 varchar 超長字段,更不能是 text 字段。

    3)關聯表之間的數據量增加時

     商品類目名稱使用頻率高,字段長度短,名稱基本一成不變,可以在相關聯的表中冗餘存儲類目名稱,避免關聯查詢

13.單錶行數超過 500 萬行或者單表容量超過 2GB,才推薦進行分庫分表。

     說明:如果預計三年後的數據量根本達不到這個級別,請不要在創建表時就分庫分表。

14. 合適的字符存儲長度,不但節約數據庫表空間、節約索引存儲,更重要的是提升檢索速度。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章