mysql資料庫的規範和效能之間的取捨

2021-10-19 15:01:55 字數 956 閱讀 5422

如:

學生表:學號、姓名、性別、出生年月日

使用者表:id、姓名、性別、位址

如果認為最後一列出生年月日還可以再分成(年,月,日),它就不是一正規化了;

如果認為最後一列位址還可以再分成(省,市,縣),它就不是一正規化了。

表:學號、課程號、姓名、學分

這個表明顯寫了兩個事務:學生資訊和課程資訊

正確做法:

學生:student(學號, 姓名);

課程:course(課程號, 學分);

選課關係:studentcourse(學號, 課程號, 成績)

成績依賴於學號和課程號,滿足第二正規化。如果再加入姓名欄位就不對了,因為姓名只依賴學號

要求任何字段不能由其他字段派生出來,它要求字段沒有冗餘,即不存在傳遞依賴

表: 學號, 姓名, 年齡, 學院名稱, 學院**

因為存在依賴傳遞: (學號) → (學生)→(所在學院) → (學院**) 。

正確做法:

學生:(學號, 姓名, 年齡, 所在學院);

學院:(學院, **)。

有規範,但是也會存在一些效能的問題。熊掌與魚,不可兼得。考慮到成本、使用者體驗,效能比規範更重要。

阿里資料庫有個規範:

關聯查詢表不得超過三張

1、故意增加一些冗餘資料(從多表查詢變為單錶查詢)

2、故意增加計算列(從大資料量降低為小資料量的查詢)

3、增加索引,需要建立索引樹,這裡就比較耗記憶體,用空間換時間

資料庫(MySQL)規範

1 所有環境的mysql版本使用5.6社群版,64位版本 2 使用innodb儲存引擎 3 資料庫字符集預設為utf8,字符集預設校驗規則為utf8 general ci 4 所有表 欄位都需要新增注釋 5 單錶資料量控制在2000w以內 6 隔離線上和線下,禁止線下直接連線線上庫,禁止在已上線庫上...

mysql資料庫效能資料 MYSQL資料庫效能優化

1.選取最適用的字段屬性 表中字段的寬度設得盡可能小 char 的上限為 255 位元組 固定占用空間 varchar 的上限 65535 位元組 實際占用空間 text 的上限為 65535。盡量把字段設定為 not null,執行查詢的時候,資料庫不用去比較 null 值。2.使用連線 join...

mysql資料庫操作規範 資料庫操作規範

1.涉及到寫入資料庫的操作,請務必使用 nohup 的方式 或者使用 操作終端pc機 客戶機房windows主機 資料庫伺服器主機 的連線模式 或者在資料庫伺服器上開乙個vnc。這裡的寫入資料庫的操作,1.涉及到寫入資料庫的操作,請務必使用 nohup 的方式 或者使用 操作終端pc機 客戶機房wi...