【发布时间】:2018-02-18 21:06:05
【问题描述】:
我必须使用两种表模式之一,
First Schema:
SELECT *
FROM `posts`
WHERE `id` = '1'
----
id title content col1 col2 col3
1 Title1 Content1 A B C
Second Schema:
SELECT p.*, GROUP_CONCAT(c.`col` ORDER BY `col_number`) AS cols
FROM `posts` p
LEFT JOIN `cols` c ON c.`pid` = p.`id`
WHERE p.`id` = 1;
----
id title content cols
1 Title1 Content1 A,B,C
在这两种情况下,对于post 表中的每个记录,我都仅限于three cols,并且会像在 Second Schema 中一样像array 一样收集它们强>A,B,C
在性能上使用哪种架构重要吗?
我知道的是:
第一个架构可以在col2, col3 上拥有NULL。
第二个架构将没有NULL cols,除非某些列在之前有value 之后更新为NULL 除了col_number = 1 的ROW。
在这两种情况下它们都将具有NULL cols 值,第二架构 NULL cols 可以是DELETED,但我不知道是保留它更好还是@987654339 @他们。
简而言之:哪个架构的性能更好?将NULL col 保留在第二模式 或DELETE 中更好吗?
【问题讨论】:
标签: mysql sql sqlperformance