什么是更有效的(就查询性能而言)数据库表设计——长的还是宽的?
即,这
id size price
1 S 12.4
1 M 23.1
1 L 33.3
2 S 3.3
2 M 5.3
2 L 11.0
与此相比
id S M L
1 12.4 23.1 33.3
2 3.3 5.3 11.0
通常(我认为)它归结为GROUP BY
直接选择列之间的性能比较:
SELECT AVG(price) FROM table GROUP BY size
或者
SELECT AVG(S), AVG(M), AVG(L) FROM table
第二个写的有点长(就很多列而言),但是两者的性能呢?如果可能,这些表格格式的一般优点/缺点是什么?