【问题标题】:database search best performances数据库搜索最佳性能
【发布时间】:2013-09-18 08:01:24
【问题描述】:

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

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

【问题讨论】:

  • 我不知道你想做什么。请提供更多详细信息。
  • 您需要在关于 SO 的问题中具体化,提出可以简洁回答的问题。目前这真的太宽泛了。

标签: database database-schema


【解决方案1】:

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

【讨论】:

  • 好的,谢谢你的想法,但我认为 btree 它是最好的。所以我现在正在做的是向表列添加索引,但从这一点开始,我对 btree 搜索感到迷茫。因此,问题将重新出现,例如拥有 n 行并找到一个无论有多少行都将保持一致的搜索算法。
猜你喜欢
  • 2020-09-22
  • 1970-01-01
  • 2021-08-08
  • 2010-11-13
  • 1970-01-01
  • 2013-05-03
  • 2011-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多