MySQL 8.0.18 Hash Join不支持left/right join左右连接问题

在MySQL 8.0.18中,增加了Hash Join新功能,它适用于未创建索引的字段,做等值关联查询。在之前的版本里,如果连接的字段没有创建索引,查询速度会是非常慢的,优化器会采用BNL(块嵌套)算法。

Hash Join算法是把一张小表数据存储到内存中的哈希表里,并逐行去匹配大表中的数据,计算哈希值并把符合条件的数据,从内存中返回客户端。

用sysbench生成4张表,并删除默认的k字段索引。

我们用explain format=tree命令可以查看到已经使用到hash join算法。

但目前8.0.18版本,仅支持join。left join和right join失效,这里请注意。

总结

以上所述是小编给大家介绍的MySQL 8.0.18 Hash Join不支持left/right join左右连接问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

(0)

相关推荐

  • Windows下MySQL8.0.18安装教程(图解)

    下载地址 下载地址: https://dev.mysql.com/downloads/mysql/ 解压安装 将下载好的zip压缩包解压到你的安装目录下 配置环境和文件 (1) 配置my.ini文件,解压之后缺少两个文件,一个是my.ini文件以及一个data文件夹创建一个my.ini文件,将下列内容复制进去: [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=E:\installSoftWare\Sql\mysql-8.0.18-win

  • Mysql 8.0.18 hash join测试(推荐)

    Hash Join Hash Join 不需要任何索引来执行,并且在大多数情况下比当前的块嵌套循环算法更有效. 下面通过实例代码给大家介绍Mysql 8.0.18 hash join测试,具体内容如下所示: CREATE TABLE COLUMNS_hj as select * from information_schema.`COLUMNS`; INSERT INTO COLUMNS SELECT * FROM COLUMNS; -- 最后一次插入25万行 CREATE TABLE COLUM

  • mysql 8.0.18.zip安装配置方法图文教程(windows 64位)

    关于卸载以前安装版的数据库,大家可以参考一下这篇文章. 卸载前记住一定要记得复制保留以前的数据,安装版的数据是在 mysql5.7所有安装版本卸载教程,建议:大家卸载完一定要重启一下. 目录 1.先去官网下载点击的MySQL的下载​   2.配置初始化的my.ini文件的文件   3.初始化MySQL   4.安装MySQL服务 + 启动MySQL 服务   5.连接MySQL + 修改密码 1.先去官网下载点击的MySQL的下载 2.下载完以后解压 2.1配置初始化的my.ini文件的文件 解

  • Java连接Mysql 8.0.18版本的方法详解

    关于Java和Mysql 8.0.18版本的连接方式,供大家参考,具体内容如下 1.官网下载mysql-server.(Connector/J记得安装) 安装教程参考: mysql 8.0.18 安装配置方法图文教程 mysql 8.0.18.zip安装配置方法图文教程(windows 64位) 2.安装完后在C盘找到mysql-connector-java-8.0.18.jar 3.记住路径后再idea中选择File-Project Structure-Modules-+号键添加jar包 4.

  • mysql 8.0.18 安装配置方法图文教程

    本文记录了mysql 8.0.18 安装配置图文教程,供大家参考,具体内容如下 第一步:下载MySql 下载地址:MySQL 第二步:安装MySql 打开下载文件解压到指定文件目录. (我这里解压目录为G:\MySQL\mysql-8.0.18-winx64) 打开解压后的MySql文件在根目录下创建my.ini (mysql配置文件) my.ini文件内容如下: [mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3

  • mysql 8.0.18 安装配置方法图文教程(linux)

    本文记录了linux mysql 8.0.18 安装配置图文教程,供大家参考,具体内容如下 1.官网安装包下载地址 2.我这里通过xftp将安装包上传至Linux服务器 3.解压 解压命令:tar -xvf mysql-8.0.18-linux-glibc2.12-x86_64.tar 继续解压需要的那一个 命令: tar -xvf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz 重命名并移动到合适的路径 重命名 : mv mysql-8.0.18-linu

  • MacOS下mysql 8.0.18 安装配置方法图文教程

    本文记录了MacOS下安装MySQL8.0.18,并成功命令行操作,供大家参考,具体内容如下 ①下载MySQL8.0.18 下载网址:点击查看 下载后(dmg)进行安装. ②开启MySQL服务 ③配置环境变量 进入终端(这里用的是vim): vim ~/.bash_profile 在文件最后加入: PATH=$PATH:/usr/local/mysql/bin 保存并退出(ESC-> : -> wq). 让配置生效: source ~/.bash_profile 推出终端重新进入. mysql

  • MySQL 8.0.18 稳定版发布! Hash Join如期而至

    MySQL 8.0.18 稳定版(GA)已于昨日正式发布,Hash Join 也如期而至. 快速浏览一下这个版本的亮点! 1.Hash Join Hash Join 不需要任何索引来执行,并且在大多数情况下比当前的块嵌套循环算法更有效. 2.EXPLAIN ANALYZE EXPLAIN ANALYZE 将运行查询,然后生成 EXPLAIN 输出,以及有关优化程序估计如何与实际执行相匹配的其他信息. 3.创建用户时可以随机生成密码 为 CREATE USER, ALTER USER和 SET P

  • MySQL 8.0.18 Hash Join不支持left/right join左右连接问题

    在MySQL 8.0.18中,增加了Hash Join新功能,它适用于未创建索引的字段,做等值关联查询.在之前的版本里,如果连接的字段没有创建索引,查询速度会是非常慢的,优化器会采用BNL(块嵌套)算法. Hash Join算法是把一张小表数据存储到内存中的哈希表里,并逐行去匹配大表中的数据,计算哈希值并把符合条件的数据,从内存中返回客户端. 用sysbench生成4张表,并删除默认的k字段索引. 我们用explain format=tree命令可以查看到已经使用到hash join算法. 但目

  • mysql 8.0.18 mgr 搭建及其切换功能

    一.系统安装包 yum -y install make gcc-c++ cmake bison-devel ncurses-devel readline-devel libaio-devel perl libaio wget lrzsz vim libnuma* bzip2 xz 二.关闭防火墙和selinux sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config setenforce 0 /etc/init.d/i

  • win10下mysql 8.0.18 安装配置方法图文教程(windows版)

    本文记录了mysql 8.0.18 安装配置图文教程,供大家参考,具体内容如下 MySQL版本:8.0.18 window环境:win10 1.首先我们需要下载ZIP解压配置安装包,如果有需要的可以到下面网址下载. 2.将安装包下载至F盘中新建的my_sql文件夹中并解压 3.配置环境变量,右键我的电脑,选择 属性---高级系统设置--环境变量 在上下两个PATH里面,将 解压包里面的bin文件夹所在的目录添加进去 4.在mysql根目录下的bin文件夹创建my.ini 配置文件,我们发现解压后

  • mysql 8.0.18各版本安装及安装中出现的问题(精华总结)

    精华总结:MYSQL出现的问题解决记录: 不管通过什么方式安装(rpm或者gz或者gz.xz),安装顺序一定要对, 先在/etc/my.cfg文件先配置好,没有先创建这个文件,尽管放心,因为mysql启动会优先找这个文件作为参数启动.然后 进行mysql的初始化,初始化的时候可以带上路径等参数,这样配置文件到时就不用配置这个了,配置了反而报错导致启动不起来,忽略密码等配置可以在初始化之后还能有效,其他的参数如路径初始化指定过了之后就不能在my.cfg用了,用重启一定报错. 如果不存在/etc/m

  • 详解MySQL 8.0.18命令

    打开刚刚解压的文件夹 C:\web\mysql-8.0.11 ,在该文件夹下创建 my.ini 配置文件,编辑 my.ini 配置以下基本信息: [client] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=C:\\web\\mysql-8.0.11 # 设置 mysql数据库的数据的存放目录,MySQL 8+ 不需要以下配置,系统自己生成即

随机推荐