【问题标题】:how to replace distinct with something faster in mysql query?如何在mysql查询中用更快的东西替换不同的东西?
【发布时间】:2013-12-05 14:03:04
【问题描述】:

我有一个这样的查询 -

SELECT COUNT(DISTINCT c.y_no) 
FROM xyz c 
WHERE c.xdate>='2013-09-01';

由于 DISTINCT,我的查询花费了太多时间。该查询扫描了大约 1.5 亿条记录。我已经在 xdate 上有了索引。请给我一些更快的建议。

谢谢。

【问题讨论】:

  • 如果你需要 distinct 值,那么你必须使用DISTINCTSlow or not(见链接)。当然,可能有一些解决方法可以避免它(例如,如果您可以假设有关列内容、关系或其他方面的某些内容),但我们需要更多上下文来猜测或建议某些内容。

标签: mysql performance optimization query-optimization distinct


【解决方案1】:

嗯,xdate 上的复合索引,y_nro 帮助太大了

【讨论】:

  • 按什么顺序? xdate,y_no 还是 y_no,xdate?
  • 按此顺序:xdate,y_no
猜你喜欢
  • 2019-05-14
  • 1970-01-01
  • 2017-01-29
  • 1970-01-01
  • 2010-10-05
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
  • 2021-06-23
相关资源
最近更新 更多