1.在表關聯時:若兩個關聯字段型別不同,那麼會進行查詢的時候會進行隱式的資料型別轉換。這樣會導致索引失效。
2.所有資料庫物件名稱必須小寫
3.命名要做到見名知意,禁止使用mysql保留關鍵字。
4.臨時表以tmp_開頭,備份表以bak_開頭並以時間戳結尾
5.所有儲存相同資料的列名和列型別必須一致。
6.mysql5.5之前myisam是預設的儲存引擎。所有表都必須使用innodb儲存引擎。
5.6版本之後innodb儲存引擎是預設儲存引擎。並且經過了優化。
支援事務,行級別鎖,更好的恢復性,高併發小效能更好。
7.資料庫和表的字符集統一使用utf-8。相容性好。中文utf-8佔3個位元組。
8.所有表和字段都需要新增注釋。從一開始就維護好資料字典。(防止後期開發人員流動資料庫設計不清楚,後人無法知道庫以及欄位的意識)
9.盡量控制單錶資料量大小,建議控制在500w以內。500w並非mysql資料庫的資料。單錶限制取決於檔案系統和儲存設定。在一些32位作業系統下單表檔案大小不能超過2g。
可以利用歷史資料歸檔,分表分庫等手段來限制資料量的大小。
10.謹慎使用mysql分割槽表
分割槽表在物理上表現為多個檔案,在邏輯上表現為乙個表。謹慎選擇分割槽鍵,跨分割槽查詢效率可能更低。
例如按照訂單號模糊查詢。可能要不各個分割槽都刮一遍,這樣查詢效率還沒有乙個大表查詢效率高。
建議採用物理分表的方式管理大資料
11.表中列也需要注意:區分冷熱資料分離,減少表的寬度。
表越寬,將表載入到記憶體快取池的時候所占用的記憶體大,而且磁碟io佔用率高。
更有效的利用快取,避免讀入冷資料。
將經常使用的列放在乙個表中。
12.禁止在表中建立預留字段。
預留字段命名很難見名知意。
資料型別也無法識別。varchar型別可以儲存任何型別。
修改表結構會對錶進行加鎖。修改表字段的成本要遠遠高於新增乙個列的成本。
13.禁止在資料庫中儲存,檔案等二進位制資料。io操作耗時,影響效能。
15.樹形結構:pid,level(0.1,0.1.1)設計
資料庫命名規範
1 目的 規範資料庫各種物件的命名規則。2 資料庫命名原則 2.1 資料檔案 如果資料庫採用檔案系統,而不是裸裝置,約定下列命名規則 1 資料檔案以表空間名為開始,以.dbf為結尾,全部採用小寫英文本母加數字命名。如該表空間有多個資料檔案,則從第2個資料檔案開始,在表空間名後加 例 對system表...
資料庫命名規範
資料庫命名規範 一 實體和屬性的命名 1 常用單詞已經進行了縮寫,在命名過程當中,根據語義拼湊縮寫即可。注意,由於orcal資料庫會將欄位名稱統一成大寫或者小寫中的一種,所以要求加上下劃線 舉例 定義的縮寫 sales sal 銷售 order ord 訂單 detail dtl 明細 則銷售訂單名...
資料庫命名規範
資料庫命名規範 1 目的 規範資料庫各種物件的命名規則。2 資料庫命名原則 2.1 資料檔案 如果資料庫採用檔案系統,而不是裸裝置,約定下列命名規則 1 資料檔案以表空間名為開始,以.dbf為結尾,全部採用小寫英文本母加數字命名。如該表空間有多個資料檔案,則從第2個資料檔案開始,在表空間名後加 例 ...