-1

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

所以我有超过 200 万种可能的组合,我想减少查询时间。我听说过 btree,但我不知道如何使用它,我已经为我的表列提供了正确的索引,但从这一点来看,我不知道我应该往哪个方向走。我的查询将如何显示。

4

1 回答 1

0

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

于 2013-09-18T10:41:47.360 回答