数据库搜索最佳表现

时间:2013-09-18 08:01:24

标签: database database-schema

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

所以我喜欢超过2百万种可能的组合,我希望减少查询时间。 我听说过btree,但我不知道如何使用它,我给了我的表列适当的索引,但从这一点来说,我不知道我应该去哪个方向。我的查询将如何。

1 个答案:

答案 0 :(得分:0)

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