如何使选择查询更有效?

时间:2017-07-14 03:43:16

标签: database select optimization rdbms-agnostic

我有一个表客户,在701个属性(列)上有数百万条记录。我收到一个有一行700列的csv文件。现在根据这700个列值,我必须从表客户中提取ID。

现在有一种方法很明显,我在where子句中使用所有700个值来激活一个选择查询。

我的问题是,如果我首先使用where子句中的一个属性获取一个较小的表,然后根据where子句中的第二个属性再次获取...并对所有属性重复此过程,那么它会更快吗? ? 或者你能建议任何其他可以加快速度的方法吗?

1 个答案:

答案 0 :(得分:0)

尝试理解这700个属性的逻辑。它们之间可能存在依赖关系,这有助于将属性数量减少到更“现实”的状态。

然后我会使用相同的技术来查看是否可以运行较小的查询,这些查询将受益于主表上的索引。每次我将结果存储在临时表中(减少tmp表中的数量或行数),为下一步索引临时表并再次执行,直到得到最终结果。 示例:如果您有日期属性:尝试隔离年份的所有记录,然后隔离日期等

尝试保留最终的复杂请求,因为它们将针对较小的tmp表运行。