示例:我们有列idA1A2A3B1B2B3AB列通常与A列一起查询,但B列通常不与A同时查询。
对于(1)将所有列存储在一个表中,而对于(2)将一个表拆分为B列,将一个表拆分为id列(这需要复制列),是否会对性能产生影响?
我在用Postgres。

最佳答案

1)是:一个表中的所有列使读取每行的成本更高,因为每页的行数更少,因此需要读取更多的页-更多的I/O。
2)是:当您确实需要As和Bs(因为您需要将它们连接在一起)时,两个单独的表比较慢。这通常有更多的I/O。
一般来说,你会用一个交换另一个。如果你总是在消费或使用一个小的、索引良好的集合,这可能无关紧要。如果你要搜索大量的行,或者因为没有有用的索引或大的输出,那么你最好用特定的场景来测量它,而不是猜测或甚至应用经验法则。

关于postgresql - RDBMS:共同定位的列(通常不一起查询)是否会对性能产生影响?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56388418/

10-11 20:00