我有一个关于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
替代设计的优点:
替代设计的缺点:
在这两种情况下,我们在id
和port_id
的组合上将date
列作为PRIMARY_KEY和UNIQUE键。
所以问题是:走哪条路?磁盘空间无关紧要,查询的速度是最重要的方面。
感谢您的关注。
答案 0 :(得分:0)
它接缝,这将取决于product
表的定义
如果产品表是最多三个部分的静态复合,那么改变当前的设计将无济于事。
虽然目前的设计闻起来很糟糕,但这将是一项依赖商业的分析
对于产品表及其用法的副作用,必须谨慎改变BTW。