安装MySQL8 MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持,适用于大多数普通用户。 MySQL Enterprise Edition 企业版本,需付费,不能在线下载,可以试用30天。提供了更多的功能和更完备的技术支持,更适合于对数据库的功能和可 ...
就两个点 在union语句中,内部临时表用于暂存数据并执行两个子查询的并集 第二:强调了通过索引优化group by语句的执行效率 如何group by优化查询? 1.如果没有排序要求,要在语句后面加 order by null; 2.尽量让 group by 过程用上表的索引 3.如果 group... ...
【GreatSQL优化器-02】索引和Sargable谓词 一、Sargable谓词介绍 GreatSQL的优化器在有过滤条件的时候,需要先把条件按照是否有索引来进行区分,可以用索引来加速查询的条件称为Sargable,其中 arge 来源于 Search Argument(搜索参数)的首字母拼成的 ...
5.7 与 8.0 对相同文件的 LOAD DATA 语句结果不同 问题描述 某客户现场支持,由MySQL 5.7.21升级MySQL 8.0.25后,通过LOAD DATA导入文件,当同一会话连续导入不同的编码(UTF8/GB18030)文件时会出现乱码。数据库版本未升级之前,相同的导入操作在My ...
概述 undo log(回滚日志):是 Innodb 存储引擎层生成的日志,实现了事务中的原子性,主要用于事务回滚和 MVCC。 redo log(重做日志):是 Innodb 存储引擎层生成的日志,实现了事务中的持久性,主要用于掉电等故障恢复; binlog (归档日志):是 Server 层生成 ...
1.下载mysql安装文件 下载地址:https://downloads.mysql.com/archives/installer/ 2.安装与配置MySQL 双击打开,接受许可协议,点击下一步: 选择自定义安装,点击下一步: 选择要安装的产品,点击下一步: 点击执行按钮: 安装完成,点击下一步进入 ...
sql语句类型及用途: Ddl:建表 改表 删表 删数据【保留表结构】 Dql:查询 where, group by, order by, join Dml:新增 修改 删除数据 Dcl:新增 删除用户对数据库权限 事务 ACID特性简介 原子性(Atomicity) 事务被视为一个不可分割的最小单 ...
MySQL 8.0特性-自增变量的持久化 在MySQL 8.0之前,自增主键AUTO_INCREMENT的值如果大于max(primary key)+1,在MySQL重启后,会重置AUTO_INCREMENT=max(primary key)+1,这种现象在某些情况下会导致业务主键冲突或者其他难以发 ...
面试:什么是死锁,死锁产生的四个必要条件,如何避免或解决死锁;数据库锁,锁分类,控制事务;MySQL中的死锁现象,MySQL死锁如何解决 ...
【GreatSQL优化器-01】const_table 一、const_table介绍 GreatSQL的优化器主要用JOIN类来进行处理SQL语句的,JOIN类有以下四个table数量相关的成员变量。其中const_tables是optimize最开始就检查并且标识的,因为这样可以把记录最少的表放 ...
MySQL InnoDB Cluster集群中一个节点,在服务器重启过后,启动MySQL实例后,发现status为MISSING,另外memberState为OFFLINE状态。如下所示: MySQL mysqldbu02:7306 ssl JS > cluster.status(){ "clust ...
创建临时表,一部分为了优化查询,join在临时表里查询出结果后导入到正常表中,他也支持多session的查询优化,更重要一点是在session会话关闭后,临时表会自动销毁。嗯就这样 另外分清他和内存表的区别 内存表一定是从memory引擎创建的,临时表可以由memory引擎创建 ...
MySQL 8.0 执行COUNT()很慢原因分析 1.1 问题描述 线上 MySQL8.0.32 环境在执行 SELECT COUNT (1) FROM t0 获取表行数很慢,同样场景下该 SQL 在 MySQL5.7 环境很快就能拿到结果 1.2 问题复现 测试版本:8.0.25 MySQL C ...
第三十四讲:join语句怎么优化? 简概: 万年不变的开头 在上一篇文章中,我和你介绍了 join 语句的两种算法,分别是 Index Nested-Loop Join(NLJ) 和 Block Nested-Loop Join(BNL)。我们发现在使用 NLJ 算法的时候,其实效果还是不错的, ...
第三十三讲:到底可不可以使用join? 简概: 厌烦了平淡的开头 提出问题 在实际生产中,关于 join 语句使用的问题,一般会集中在以下两类: 我们 DBA 不让使用 join,使用 join 有什么问题呢? 如果有两个大小不同的表做 join,应该用哪个表做驱动表呢? 提出示例 今天这篇 ...
MySQL--DAY04 索引 定义 索引是在数据库表的字段上添加的,是为了提高查询效率存在的一种机制。 一张表的一个字段可以添加一个索引,当然,多个字段联合起来也可以添加索引。 索引相当于一本书的目录,是为了缩小扫描范围而存在的一种机制。 对于一本字典来说,查找某个汉字有两种方式: 第一种方式:一 ...
MySQL--DAY03 一个案例 查询每一个员工的所在部门名称?要求显示员工名和部门名。 mysql> select * from emp; + + + + + + + + + | EMPNO | ENAME | JOB | MGR | HIREDATE | SAL | COMM | DEPTNO ...
MySQL--DAY01 基本概念 数据库:英文单词DataBase,简称DB。按照一定格式存储数据的一些文件的组合。 顾名思义:存储数据的仓库,实际上就是一堆文件。这些文件中存储了具有特定格式的数据。 数据库管理系统:DataBaseManagement,简称DBMS。 数据库管理系统是专门用来管 ...
我的服务器数据库内存还有4个G,里面有8个G的表,现在,我要让我的客户机远程连接服务器后对数据库进行一次全表扫描,请问,我的服务器会不会因为内存被8个G的表塞得溢出而崩溃? 面试关如实问到 在我阅读这篇文章后,我会这么跟面试官说: 第一,内存不会打满,除非socket send buffer... ...
在一个阳光洒满教室的温暖午后,hr隔着腾讯会议的屏幕目光如炬得看着你,大喝一声,你在mysql实验中有没有遇到sql语句kill不了的情况,所! 每一个sql语句的线程执行都有一个或多个“埋雷点”,kill query或kill 线程id都是向这个埋雷点发信号激活,所以,当这个sql语句执行到被激活... ...