我有一个关于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列作为PRIMARY_KEY,以及port_id和date组合的唯一键。
所以问题是:走哪条路?磁盘空间无关紧要,查询速度是最重要的方面。
感谢您的关注。
发布于 2014-11-29 12:30:43
它会接缝,这将取决于product表的定义。
如果产品表是静态复合最多三个部分,那么改变当前的设计不会有多大帮助。
虽然目前的设计难闻,但那将是一个业务依赖的分析。
顺便说一句,对于产品表及其用法的副作用,必须谨慎地进行更改。
https://stackoverflow.com/questions/27185988
复制相似问题