我是新手PostgreSQL,特别是它的性能调整方面。基本上,我们有一些数据,通过查询3个整数值来访问:segmentSize(范围1...10),segmentX(范围+/- 100,000),segmentY(范围+/- 100,000)。
前瞻性考虑:当数据量增长时,可以将数据分成多个表,一个表对应一个单独的segmentSize,和/或segmentX和segmentY连续的范围。
目前的选择:我有一个架构选择,要么直接使用键(segmentSize,segmentX,segmentY),要么为了获得性能,在PostgreSQL之外创建一个合成键,将segmentX,segmentY组合成一个单一的整数值,成为键(或者更少可能,所有三个(segmentSize,segmentX,segmentY))。
问题是:假设我们不太关心在Postgress之外从segmentX、segmentY派生这个“合并键”的成本,并且我们没有特别追求每行数据节省字节的空间(除非它会影响性能),那么查询范围segmentX * segmentY的单个int值,与查询segmentX和segmentY两个单独的int值相比,是否会有任何可衡量或有意义的性能提升?
非常感谢。请随意包含任何扩展适用数据和索引策略以最大化SELECT /读性能的链接。
前瞻性考虑:当数据量增长时,可以将数据分成多个表,一个表对应一个单独的segmentSize,和/或segmentX和segmentY连续的范围。
目前的选择:我有一个架构选择,要么直接使用键(segmentSize,segmentX,segmentY),要么为了获得性能,在PostgreSQL之外创建一个合成键,将segmentX,segmentY组合成一个单一的整数值,成为键(或者更少可能,所有三个(segmentSize,segmentX,segmentY))。
问题是:假设我们不太关心在Postgress之外从segmentX、segmentY派生这个“合并键”的成本,并且我们没有特别追求每行数据节省字节的空间(除非它会影响性能),那么查询范围segmentX * segmentY的单个int值,与查询segmentX和segmentY两个单独的int值相比,是否会有任何可衡量或有意义的性能提升?
非常感谢。请随意包含任何扩展适用数据和索引策略以最大化SELECT /读性能的链接。