我是 PostgreSQL 的新手,尤其是它的性能调优方面。基本上,我们通过查询 3 个整数值来访问数据:segmentSize(范围 1...10)、segmentX(范围 +/- 100,000)、segmentY(范围 +/- 100,000)。
前瞻性考虑:当数据量增长时,有可能将数据分段到多个表中,每个单独的 segmentSize 和/或 segmentX 和 segmentY 的连续范围。
目前的选择:我有一个架构选择,要么直接使用键(segmentSize、segmentX、segmentY),要么——为了获得性能——在 PostgreSQL 之外创建一个合成键,将 segmentX、segmentY 组合成一个整数值,成为关键(或者不太可能,所有三个(segmentSize,segmentX,segmentY)。
问题:假设我们不太关心从segmentX,segmentY在Postgress之外发生的这种“组合密钥”派生的成本,并且考虑到我们并不是专门针对每行数据的字节顺序节省空间(除非它会产生性能差异),....是否会通过查询范围segmentX * segmentY的单个int值而不是查询segmentX和segmentY的两个独立int值的组合来获得任何可衡量或有意义的性能增益?
非常感谢。请随意包含任何扩展适用数据和索引策略的链接,以最大限度地提高 SELECT/读取性能。