zoukankan      html  css  js  c++  java
  • 8.2.1.17 DISTINCT Optimization

    8.2.1.17 DISTINCT Optimization

    DISTINCT 结合ORDER BY 需要一个临时表在很多情况下:

    因为DISTINCT 可能使用GROUP BY, 了解MySQL 和列在ORDER BY 或者HAVING 子句

    不是SELECT 的列

    在大多数情况下,一个DISTINCT 子句可以被认为一个特定GROUP BY 的例子,比如,下面两个查询是等价:

    SELECT DISTINCT c1, c2, c3 FROM t1
    WHERE c1 > const;

    SELECT c1, c2, c3 FROM t1
    WHERE c1 > const GROUP BY c1, c2, c3;

    由于这种等价, 优化应用于GROUP BY 查询可以应用于DISTINCT 查询。

    当结合LIMIT row_count 和DISTINCT, MySQL 停止当找到row_count 唯一的行就停止

    ruguo9你不使用 从查询的所有表的列, MySQL 停止扫描任何不使用的表 只要它找到第一个匹配。

    在下面的例子,架设 t1是在t2前使用( 你可以通过EXPLAIN检查)

    MySQL 停止从t2读取

    SELECT DISTINCT t1.a FROM t1, t2 where t1.a=t2.a;

  • 相关阅读:
    富文本编辑器编辑
    你是怎么发上去的
    f
    xxx
    test
    sgsdg
    code
    html2canvas.js——HTML转Canvas工具
    后台返回流图片的处理方式。(原生,JQ,VUE)
    渐进式web应用开发---service worker
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351277.html
Copyright © 2011-2022 走看看