mysql資料庫設計

2021-08-07 08:31:12 字數 808 閱讀 7907

在進行優化工作之前,先應該按照業務需求設計資料庫,這邊寫的十分詳細:

另外,根據業務弄清楚幾個問題

1.資料的容量:1-3年內會大概多少條資料,每條資料大概多少位元組;

2.資料項:是否有大字段,那些欄位的值是否經常被更新;

3.資料查詢sql條件:哪些資料項的列名稱經常出現在where、group by、order by子句中等;

4.資料更新類sql條件:有多少列經常出現update或delete 的where子句中;

5.sql量的統計比,如:select:update+delete:insert=多少?

6.預計大表及相關聯的sql,每天總的執行量在何數量級?

7.表中的資料:更新為主的業務 還是 查詢為主的業務

8.打算採用什麼資料庫物理伺服器,以及資料庫伺服器架構?

9.併發如何?

10.儲存引擎選擇innodb還是myisam?

大致明白以上10個問題,至於如何設計此類的大表,應該什麼都清楚了!

至於優化若是指建立好的表,不能變動表結構的話,那建議innodb引擎,多利用點記憶體,減輕磁碟io負載,因為io往往是資料庫伺服器的瓶頸

另外對優化索引結構去解決效能問題的話,建議優先考慮修改類sql語句,使他們更快些,不得已只靠索引組織結構的方式,當然此話前提是,

索引已經建立的非常好,若是讀為主,可以考慮開啟query_cache,以及調整一些引數值:

sort_buffer_size,read_buffer_size,read_rnd_buffer_size,join_buffer_size

由知乎整理:

mysql 資料庫設計 MySQL 資料庫設計總結

本文由雲 社群發表 規則 1 一般情況可以選擇 myisam 儲存引擎,如果需要事務支援必須使用 innodb 儲存引擎。注意 myisam 儲存引擎 b tree 索引有乙個很大的限制 參與乙個索引的所有欄位的長度之和不能超過 1000 位元組。另外 myisam 資料和索引是分開,而 innod...

mysql考勤資料庫設計 mysql 資料庫設計

正規化 大概有8種正規化,遵循前三個一般資料庫就沒有問題 1 列不能再拆分 比如一列中有姓名,又有性別,就是沒有遵循這一條正規化 order id product id price quantity product name 111 11 123 good pen order id 和 produc...

mysql相簿資料庫設計 mysql資料庫的設計

資料庫的設計有乙個嚴謹的流程,根據流程製作乙個完整的資料庫,可以省去很多的時間,也可以最大程度上與客戶的想法契合。需求分析階段 分析客戶的業務和資料處理需求 概要設計階段 設計資料庫的e r模型圖,確認需求資訊的正確和完整 詳細設計階段 應用三大正規化審核資料庫結構 編寫階段 物理實現資料庫,編碼實...