• Oracle放大招:MySQL 即将支持 Hash Join


    在刚刚OOW19会上的《python and mysql 8.0 document store》topic中,终于看到了MySQL即将在8.0.18中支持hash join,自从被Oracle收购后,又一特性被引入到MySQL中,有了Hash Join,SQL的性能将得到显著的提升,同学们期盼已久,迫不及待的等待测试,BTW:Oracle数据库在1996年7.3版本中就已经推出了hash join功能。

    Topic中给出了MySQL Hash Join的特性介绍:

    1、对于大数据量的表关联,HJ速度将明显比NL快很多

    2、在内存中处理

    3、必要情况下,会使用磁盘空间

    4、用于内连接,可扩展到外连接、半连接和反连接

    5、替换查询计划中的Block Nested Loop

    6、可以通过HINT强制SQL走HJ或者NL

    640?wx_fmt=jpeg

    MySQL是一个轻量级的数据库,使用起来非常简单,深受开发者喜爱。之所以一直不支持hash join,想必应该是背后的逻辑和数据支撑需要较高开发和维护成本,hash join算法其实并不复杂,但是要想hash join运行好,类似Oracle CBO一整套的东西是必不可少的,而CBO又依赖于统计信息,随之而来的就是Oracle中常见的谓词越界、数据分布不均、绑定变量窥探等等问题需要解决。

    我们从后面看到,MySQL 8.0.18还支持EXPLAIN ANALYZE,也是基于CBO的一些新功能

    640?wx_fmt=jpeg

    使用它可以估算成本、查看实际执行的统计数据,包括第一条记录的返回时间,全部记录返回时间,返回记录的数量以及循环数量,EXPLAIN还将可以使用新的输出格式,树状输出。

    随着企业数据量的增长,不再是几年前几十M大小随便跑的数据库了,期待MySQL在更多的场景都能发挥作用。

    出处:墨天轮(https://www.modb.pro/db/6589,复制到网页中打开 )

  • 相关阅读:
    QML小例子【QML工程里信号与槽】
    TensorFlow基础笔记(11) conv2D函数
    tensorflow学习笔记(10) mnist格式数据转换为TFrecords
    tensorflow函数学习笔记
    各个层次的gcc警告
    opencv3.2 dnn 图像分割
    ubuntu16.04 安装caffe以及python接口
    linux profileashrcash_profile之间的区别和联系
    ubuntu 16.04 安装pycharm
    Ubuntu下配置samba实现文件夹共享
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13311920.html
Copyright © 2020-2023  润新知