簡體   English   中英

mysql表設計建議

[英]Mysql table design advice

我對MySQL數據庫表設計有一個一般性問題。 我有一個表,包含約65萬條記錄,每年大約增加10萬條記錄。 數據請求非常頻繁,平均每秒請求1.6次。

現在具有以下結構

id   port_id         date        product1_price    product2_price    product3_price
 1         1   2012-01-01                100.00            200.00            155.00
 2         2   2012-01-01                  NULL            150.00            255.00
 3         3   2012-01-01                300.00              NULL            355.00
 4         1   2012-01-02                200.00            250.00            355.00
 5         2   2012-01-02                400.00            230.00            255.00

以這種方式存儲數據會更好嗎?

id     port_id         date    product   price
1            1   2012-01-01          1     100
1            2   2012-01-01          1     200
1            3   2012-01-01          1     300
1            1   2012-01-02          1     240

替代設計的優點:

  • 在第二種設計中,我們不必存儲NULL值(如果端口中沒有此類產品)
  • 我們可以輕松添加新產品-與第一個設計相比,每個新產品都需要一個新列

替代設計的缺點:

  • 記錄數將從65萬個增加到65萬個*產品數量減去所有NULL記錄; 大約有210萬條記錄。

在這兩種情況下,我們在port_iddate組合上都有id列作為PRIMARY_KEY和UNIQUE鍵。

所以問題是:走哪條路? 磁盤空間無關緊要,查詢速度是最重要的方面。

感謝您的關注。

它接縫,這將取決於product表的定義。
如果產品表由最多三部分組成的靜態組合,那么更改當前設計將無濟於事。

盡管當前的設計很難聞,但這將是與業務相關的分析。
BTW更改必須謹慎對待產品表及其用法的副作用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM