在基因组学中,一个区间由染色体1-22,x,y和染色体上的位置(开始,结束)组成。染色体可以被编码为一个具有24个不同值的enum,染色体上的位置可以编码为INT8RANGE。
为了进行有效的范围查询和区间联接,我想在列(chr,pos)上构建一个索引,但是我读了这个如果第一列只有几个不同的值,即使附加列中有许多不同的值,GiST索引也会相对无效。。
在PostgreSQL的基因组范围内什么是最好的索引类型?
发布于 2020-04-28 16:06:42
在我的经验中,文档中的警告是不正确的。
或者至少它的正确性取决于对“相对”的一种相当无用的解释。相对于什么?使用不支持需要支持的操作的不同索引类型?索引不同的数据集,哪些不是您需要索引的数据集?
您可以交换索引中列的顺序,但我怀疑这也是一个改进。这可能取决于范围通常有多大,所以您可以在实际的数据集中试用它,而不仅仅是一些简单的随机数生成的数据。在您发现更直观的索引用法有问题之前,我甚至不会同时测试这一点。
我将使用您指定的索引,然后尝试解决性能问题,如果/当它们出现时,您就有了问题所在的证据。
https://stackoverflow.com/questions/61467649
复制相似问题