登录
首页 >  数据库 >  MySQL

MySQL新特性之哈希连接

来源:SegmentFault

时间:2023-02-16 15:23:52 305浏览 收藏

小伙伴们对数据库编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《MySQL新特性之哈希连接》,就很适合你,本篇文章讲解的知识点主要包括MySQL、后端。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!

概述

很长一段时间,MySQL 执行 连接 的唯一算法是
SET optimizer_switch="hash_join=off";
  • 使用 hints (HASH_JOIN or NO_HASH_JOIN)。
  • 我们将使用以下查询作为示例:

    EXPLAIN FORMAT = tree
    SELECT
      city.name AS city_name,
      province.name AS province_name
    FROM
      city
      JOIN province
        ON city.province_id = province.province_id;

    输出为:

    EXPLAIN FORMAT= TREE
    SELECT
      city.name AS city_name,
      province.name AS province_name,
      country.name AS country_name
    FROM
      city
      JOIN province
        ON city.province_id = province.province_id
        AND city.id 

    输出为:

    EXPLAIN FORMAT= TREE
    SELECT
      *
    FROM
      city
      JOIN province;

    输出为:

    EXPLAIN FORMAT=TREE
    SELECT
      *
    FROM
      city
      JOIN province
        ON city.province_id 

    输出为:

    | 

    如何查看语句执行是否使用哈希连接?

    EXPLAIN FORMAT= TREE
    在 MySQL 8.0.16 及之后的版本可以使用,TREE 提供了类似于树的输出,对查询处理的描述比传统格式更加精确,它是唯一显示 哈希连接 用法的格式。

    除此之外,也可以使用

    EXPLAIN ANALYZE
    查看 哈希连接 信息。



    以上基于 MySQL community Server 8.0.18。

    参考

    Hash Join Optimization

    Optimizer Hints

    Server System Variables

    Hash join in MySQL 8

    MySQL · 新特征 · MySQL 哈希连接实现介绍

    欢迎对 MySQL 有兴趣的朋友一起学习交流。

    理论要掌握,实操不能落!以上关于《MySQL新特性之哈希连接》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

    声明:本文转载于:SegmentFault 如有侵犯,请联系study_golang@163.com删除
    相关阅读
    更多>
    最新阅读
    更多>
    课程推荐
    更多>
    评论列表