Database 数据库搜索最佳性能

Database 数据库搜索最佳性能,database,database-schema,Database,Database Schema,如何基于50个参数(如过滤器)的组合进行搜索。 这些过滤器可以是价格、颜色、尺寸、品牌等。 所以我们可以根据这些参数得到不同的页面。 因此,一个链接可以有价格品牌大小,另一个品牌颜色大小,等等。 我的问题是基于这些参数查询数据库的最佳实践是什么。 我有一个IDEA可以将它们加密成101101个1和0的序列,然后用它进行搜索 所以我有超过200万种可能的组合,我想减少查询时间。 我听说过btree,但我不知道如何使用它,我给了我的表列适当的索引,但从这一点上我不知道我应该朝哪个方向走。我的查询将是

如何基于50个参数(如过滤器)的组合进行搜索。 这些过滤器可以是价格、颜色、尺寸、品牌等。 所以我们可以根据这些参数得到不同的页面。 因此,一个链接可以有价格品牌大小,另一个品牌颜色大小,等等。 我的问题是基于这些参数查询数据库的最佳实践是什么。 我有一个IDEA可以将它们加密成101101个1和0的序列,然后用它进行搜索

所以我有超过200万种可能的组合,我想减少查询时间。
我听说过btree,但我不知道如何使用它,我给了我的表列适当的索引,但从这一点上我不知道我应该朝哪个方向走。我的查询将是什么样子

我认为对参数进行“加密”是个好主意,但不要像“10100010”那样进行加密,因为这样就必须将这些值存储为字符串。 而是将其编码为base10数字。这意味着100101=1*32+0*16+0*8+1*4+0*2+1*1=37。 当然,有了50个标志,您会得到一个太大的数字,无法存储为bigint(32字节),所以请尝试对参数进行逻辑分组,并使用2-3个字段。
此方法的问题在于查询数据-您必须编写一个函数,从数字中提取一个标志,以便只通过一个参数而不是所有参数查询数据。

我不知道您正在尝试做什么。请提供更多的细节。你需要在你的问题上具体,所以,提出的问题将允许一个简洁的答案。现在这真的太宽泛了。好吧,谢谢你的想法,但我认为这是最好的。所以我现在要做的是向表列添加索引,但从这一点开始,我对btree搜索一无所知。因此,问题将再次出现,比如有n行,并找到一个无论有多少行都是一致的搜索算法。