假设有一张table是这样的:
名称|日期|值1 |值2 |值3 |…|value100 varchar | date | float | float | float | float。。。
我可以用它来选择语句,并使用where value1>n,或者使用where value1>n和value2=n。
但是,如果我想包含最多包含100个条件的查询,以便根据每列中的值筛选表中的结果,该怎么办?
这可能吗?如果是这样的话,既然索引中的最大列数是16,那么您如何对其进行索引呢?任何给定条件组合的结果,我需要在10秒内。
谢谢你的洞察力。
1条答案
按热度按时间qfe3c7zg1#
请看我对以下问题的回答https://stackoverflow.com/a/45611294/2350861
正如您的问题评论中提到的,拥有一个包含这么多列的表不是一个好主意。处理属性过滤的这种必要性的最佳方法是使用一个具有多对一关系Map的单独的值表。然后可以按如下方式筛选所需的值:
也可以改用内部联接
尽管这比一个有数百列的表要好,但随着“值”数量的增加,这仍然会变得相当难看。我会考虑使用外部自由文本/属性搜索引擎或索引器。