Mysql以特殊(可能是更高性能)的方式表现 when a table has no variable-width columns postgres有类似的行为吗?向表中添加单个可变宽度列是否会产生任何重大差异? 在 postgres docs (read the tip)中给出
postgres有类似的行为吗?向表中添加单个可变宽度列是否会产生任何重大差异?
在 postgres docs (read the tip)中给出的一般建议是可变长度字段通常表现更好,因为它导致更少的数据,因此表适合更少的磁盘块并占用更少的高速缓存内存空间.现代CPU比内存和磁盘快得多,可变长度字段的开销值得减少IO.请注意,postgresql在行开头的位图中存储NULL值,如果值为NULL,则省略该字段.因此任何可空列都基本上具有可变宽度. postgresql存储数据的方式(Database page layout)表明,检索最后一列比第一列慢.但是,如果您有许多列并且数据主要位于缓存中,那么这可能只会产生明显的影响.否则磁盘将成为主导因素.