Mysq学习笔记
文章平均质量分 90
Mysql学习笔记
ZHY_ERIC
这个作者很懒,什么都没留下…
展开
-
mysqldump使用where条件导出数据表部分数据
mysqldump导出mysql数据库部分数据为sql文件原创 2022-07-13 21:55:15 · 1118 阅读 · 0 评论 -
Windows 双主复制搭建
(2条消息) Mysql应用安装后找不到my.ini文件_ZHY_ERIC的博客-CSDN博客https://blog.csdn.net/ZHY_ERIC/article/details/124455269?spm=1001.2014.3001.5501 接着上边一篇一、环境配置如下为我的环境参数主机 Master1 Master2 系统 Win7系统 Win10系统 数据库id Server_id = 1 Serve...原创 2022-04-28 12:43:15 · 315 阅读 · 0 评论 -
Authentication plugin ‘caching_sha2_password‘ cannot be loaded
一、问题在连接远程用户时出现该错误 :Authentication plugin ‘caching_sha2_password‘ cannot be loaded二、解决方法 进入Mysql:mysql -u root -p2、修改账户密码加密规则并更新用户密码://修改加密规则(可以直接复制)ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NE...原创 2022-04-28 11:44:43 · 6541 阅读 · 0 评论 -
Mysql创建远程登陆用户。
一、创建远程登陆用户 我这里的ip是固定的,因此在创建用户时我会限制ip。 在有数据库的机子上登陆mysql终端。mysql -u用户名 -p密码 选择使用mysql数据库,。# 切换至mysql数据库use mysql;# 查看当前已有用户信息select User,authentication_string,Host from user; 创建新用户; 用户名:d514 用户密码。(用于master2机...原创 2022-04-28 09:40:58 · 3603 阅读 · 0 评论 -
Mysql应用安装后找不到my.ini文件
一、背景我在两台电脑上安装了MySQL Server 8.0,准备继续做主从配置,这时候就需要用到my.ini文件进行配置,但是我找不到my.ini文件。 我的安装目录中没有my.ini文件。(这里我的mysql安装目录为C:\Program Files\MySQL\MySQL Server 8.0)。那么我们就需要重新配置一下。二、删除原有的mysql服务因为我的mysql已经用了一段时间,我这里就删除服...原创 2022-04-27 20:52:03 · 14827 阅读 · 9 评论 -
报错:Incorrect string value: ‘\xE5\x90\x83\xE9\xA5\xAD‘ for column ‘msg‘ at row 1
一、问题在学习Spring项目时,爆出了数据的如下错误:Incorrect string value: '\xE5\x90\x83\xE9\xA5\xAD' for column 'msg' at row 1二、原因原因:发现在创建数据库的时候将编码格式创建为了latin1编码。三、解决方法解决方法:重新建表设置为utf8编码格式。或者想偷懒的话,把涉及到这个字段修改为utf8格式。...原创 2022-04-14 22:19:14 · 2892 阅读 · 0 评论 -
Mysql的自增id用完怎么办?
摘抄原创 2022-03-19 12:47:40 · 704 阅读 · 0 评论 -
答疑文章(三)
摘抄原创 2022-03-19 10:49:01 · 708 阅读 · 0 评论 -
Mysql什么时候使用分区表?
一、分区表是什么?为了说明分区表的组织形式,我先创建一个表 t:CREATE TABLE `t` ( `ftime` datetime NOT NULL, `c` int(11) DEFAULT NULL, KEY (`ftime`)) ENGINE=InnoDB DEFAULT CHARSET=latin1PARTITION BY RANGE (YEAR(ftime))(PARTITION p_2017 VALUES LESS THAN (2017) ENGIN........原创 2022-03-19 10:06:51 · 778 阅读 · 0 评论 -
MySQL中grant之后要跟着flush privileges吗?
摘抄,个人用原创 2022-03-18 22:08:09 · 365 阅读 · 0 评论 -
MySQL 怎么最快地复制一张表?
摘抄原创 2022-03-18 21:44:11 · 1963 阅读 · 0 评论 -
MySQL中insert语句的锁为什么这么多?
摘抄原创 2022-03-18 20:21:10 · 1222 阅读 · 0 评论 -
MySQL 自增主键是连续的吗?
摘抄原创 2022-03-18 20:50:14 · 670 阅读 · 0 评论 -
InnoDB已经很好了,那还要不要使用Memory引擎?
一、内存表的数据组织结构为了便于分析,我来把这个问题简化一下,假设有以下的两张表 t1 和 t2,其中表 t1 使用 Memory 引擎, 表 t2 使用 InnoDB 引擎。create table t1(id int primary key, c int) engine=Memory;create table t2(id int primary key, c int) engine=innodb;insert into t1 values(1,1),(2,2),(3,3),(4,4),(5原创 2022-03-18 16:29:40 · 182 阅读 · 0 评论 -
MySQL什么时候会使用内部临时表?
在第 16和第 34篇文章中,我分别和你介绍了 sort buffer、内存临时表和 join buffer。这三个数据结构都是用来存放语句执行过程中的中间数据,以辅助 SQL 语句的执行的。其中,我们在排序的时候用到了 sort buffer,在使用 join 语句的时候用到了 join buffer。MySQL 什么时候会使用内部临时表呢?今天这篇文章,举两个需要用到内部临时表的例子,来看看内部临时表是怎么工作的。然后,我们再来分析,什么情况下会使.........原创 2022-03-18 15:18:14 · 707 阅读 · 2 评论 -
为什么临时表可以重名呢?
在上一篇文章中,我们在优化 join 查询的时候使用到了临时表。当时,我们是这么用的:create temporary table temp_t like t1;alter table temp_t add index(b);insert into temp_t select * from t2 where b>=1 and b<=2000;select * from t1 join temp_t on (t1.b=temp_t.b);你可能会有疑问,为什么要用临........原创 2022-03-18 09:00:17 · 497 阅读 · 0 评论 -
MySQL中使用join语句时怎么优化?
在上一篇文章中,我和你介绍了 join 语句的两种算法,分别是 Index Nested-Loop Join(NLJ) 和 Block Nested-Loop Join(BNL)。我们发现在使用 NLJ 算法的时候,其实效果还是不错的,比通过应用层拆分成多个语句然后再拼接查询结果更方便,而且性能也不会差。但是,BNL 算法在大表 join 的时候性能就差多了,比较次数等于两个表参与 join 的行数的乘积,很消耗 CPU 资源。当然了,这两个算法都还有......原创 2022-03-17 21:36:22 · 678 阅读 · 0 评论 -
Mysql到底可不可以使用join?
摘抄原创 2022-03-16 22:07:37 · 415 阅读 · 0 评论 -
如过查了很多数据,会不会把数据库内存打爆?
问到这样一个问题:我的主机内存只有 100G,现在要对一个 200G 的大表做全表扫描,会不会把数据库主机的内存用光了?这个问题确实值得担心,被系统 OOM(out of memory)可不是闹着玩的。但是,反过来想想,逻辑备份的时候,可不就是做整库扫描吗?如果这样就会把内存吃光,逻辑备份不是早就挂了?所以说,对大表做全表扫描,看来应该是没问题的。但是,这个流程到底是怎么样的呢?一、全表扫描对 server 层的影响假设,我们现.........原创 2022-03-16 21:03:41 · 788 阅读 · 0 评论 -
MySQL中为什么还有kill不掉的语句?
在 MySQL 中有两个 kill 命令:一个是 kill query + 线程 id,表示终止这个线程中正在执行的语句;一个是 kill connection + 线程 id,这里 connection 可缺省,表示断开这个线程的连接,当然如果这个线程有语句正在执行,也是要先停止正在执行的语句的。在使用 MySQL 的时候,有可能会遇到过这样的现象:使用了 kill 命令,却没能断开这个连接。再执行 show processlist 命令,看到这条语句的 Command.........原创 2022-03-16 20:23:23 · 3926 阅读 · 0 评论 -
如果误删了 Mysql数据,应该怎么补救?
摘抄原创 2022-03-11 10:12:25 · 14318 阅读 · 0 评论 -
用动态的观点看MySQL加锁(问题)
今天这篇答疑文章的主题,即:用动态的观点看加锁。为了方便你理解,我们再一起复习一下加锁规则。这个规则中,包含了两个“原则”、两个“优化”和一个“bug”:原则 1:加锁的基本单位是 next-key lock。希望你还记得,next-key lock 是前开后闭区间。 原则 2:查找过程中访问到的对象才会加锁。 优化 1:索引上的等值查询,给唯一索引加锁的时候,next-key lock 退化为行锁。 优化 2:索引上的等值查询,向右遍历时且最后一个值不满足等值条件的时候,next-key原创 2022-03-09 11:12:31 · 1005 阅读 · 0 评论 -
如何判断MySQL数据库是否异常?
摘抄笔记原创 2022-03-09 10:10:26 · 515 阅读 · 0 评论 -
MySQL “读写分离”要注意的地方
摘抄笔记图 1 读写分离基本结构读写分离的主要目标就是分摊主库的压力。图 1 中的结构是客户端(client)主动做负载均衡,这种模式下一般会把数据库的连接信息放在客户端的连接层。也就是说,由客户端来选择后端数据库进行查询。还有一种架构是,在 MySQL 和客户端之间有一个中间代理层 proxy,客户端只连接 proxy, 由 proxy 根据请求类型和上下文决定请求的分发路由。图 2 带 proxy 的读写分离......原创 2022-03-09 09:38:37 · 271 阅读 · 0 评论 -
MySQL 主库出问题了,从库怎么办?
如图 1 所示,就是一个基本的一主多从结构。图 1 一主多从基本结构图中,虚线箭头表示的是主备关系,也就是 A 和 A’互为主备, 从库 B、C、D 指向的是主库 A。一主多从的设置,一般用于读写分离,主库负责所有的写入和一部分读,其他的读请求则由从库分担。今天我们要讨论的就是,在一主多从架构下,主库故障后的主备切换问题。如图 2 所示,就是主库发生故障,主备切换后的结果。图 2 一主多从基本结构 -- 主备切换相比于一主一备的切换流程,一主多从结构在切换完成......原创 2022-03-08 15:15:40 · 1042 阅读 · 0 评论 -
MySQL 备库延迟好几个小时,是怎么回事?
摘抄原创 2022-03-08 14:02:16 · 354 阅读 · 0 评论 -
MySQL如何实现高可用的?
学习摘抄笔记原创 2022-03-08 10:49:46 · 260 阅读 · 0 评论 -
Mysql怎么保证主从一致
为什么备库执行了 binlog 就可以跟主库保持一致了呢?今天正式地和你介绍一下它。在最开始,MySQL 是以容易学习和方便的高可用架构,被开发人员青睐的。而它的几乎所有的高可用架构,都直接依赖于 binlog。虽然这些高可用架构已经呈现出越来越复杂的趋势,但都是从最基本的一主一备演化过来的。MySQL 主备的基本原理图 1 MySQL 主备切换流程在状态 1 中,客户端的读写都直接访问节点 A,而节点 B 是 A 的备库,只是将 A 的更.........原创 2022-03-08 09:01:06 · 3101 阅读 · 0 评论 -
MySQL如何保证数据不丢失?
学习,摘抄,个人用原创 2022-03-07 21:36:51 · 148 阅读 · 0 评论 -
Mysql中“饮鸠止渴“提高性能的方法(临时性提升)
不知道你在实际运维过程中有没有碰到这样的情景:业务高峰期,生产环境的 MySQL 压力太大,没法正常响应,需要短期内、临时性地提升一些性能。短连接风暴正常的短连接模式就是连接到数据库后,执行很少的 SQL 语句就断开,下次需要的时候再重连。如果使用的是短连接,在业务高峰期的时候,就可能出现连接数突然暴涨的情况。MySQL 建立连接的过程,成本是很高的。除了正常的网络连接三次握手外,还需要做登录权限判断和获得这个连接的数据读写权限。但是,短连接模型存在一个风险,就是一旦数据库处理得慢一些,连接原创 2022-03-07 21:07:18 · 119 阅读 · 0 评论 -
MySQL修改一行,可能触发很多锁
因为间隙锁在可重复读隔离级别下才有效,所以本篇文章接下来的描述,若没有特殊说明,默认是可重复读隔离级别。总结的加锁规则里面,包含了两个“原则”、两个“优化”和一个“bug”。原则 1:加锁的基本单位是 next-key lock。next-key lock 是前开后闭区间。 原则 2:查找过程中访问到的对象才会加锁。 优化 1:索引上的等值查询,给唯一索引加锁的时候,next-key lock 退化为行锁。 优化 2:索引上的等值查询,向右遍历时且最后一个值不满足等值条件的时候,next-k原创 2022-03-07 20:10:05 · 603 阅读 · 0 评论 -
Mysql发生幻读时会引发什么问题
建表和初始化语句如下:CREATE TABLE `t` ( `id` int(11) NOT NULL, `c` int(11) DEFAULT NULL, `d` int(11) DEFAULT NULL, PRIMARY KEY (`id`), KEY `c` (`c`)) ENGINE=InnoDB;insert into t values(0,0,0),(5,5,5),(10,10,10),(15,15,15),(20,20,20),(25,25,25);...原创 2022-03-07 19:11:06 · 321 阅读 · 0 评论 -
为什么MySQL只查一行的语句,也执行这么慢?
一般情况下,如果我说查询性能优化,你首先会想到一些复杂的语句,想到查询需要返回大量的数据。但有些情况下,“查一行”,也会执行得特别慢。需要说明的是,如果 MySQL 数据库本身就有很大的压力,导致数据库服务器 CPU 占用率很高或 ioutil(IO 利用率)很高,这种情况下所有语句的执行都有可能变慢,不属于我们的讨论范围。为了便于描述,我还是构造一个表,基于这个表来说明今天的问题。这个表有两个字段 id 和 c,并且我在里面插入了 10 万行记录。mysql> CREATE TABLE原创 2022-03-07 16:26:13 · 286 阅读 · 0 评论 -
MySQL中一些sql的逻辑相同,单性能差别巨大
笔记摘抄原创 2022-03-07 15:19:44 · 132 阅读 · 0 评论 -
MySQL如何正确地显示随机消息
英语学习APP首页有一个随机显示单词的功能,根据每一个用户的级别会有一个单词表,然后这个用户每次访问首页的时候,都会随机滚动显示三个单词。可能会有一个问题:随着单词表变大,选单词的逻辑变得越来越慢,甚至影响到了首页的打开速度。 例子简化:去掉每个级别的用户,都有对应的单词表这个逻辑,直接就是从一个单词表中随机选出三个单词。建表语句及初始数据如下:mysql> CREATE TABLE `words` ( `id` int(11) NOT NULL AUTO_......原创 2022-03-07 13:11:20 · 278 阅读 · 0 评论 -
MySQL中order by的工作过程分析?
摘抄原创 2022-02-23 20:50:31 · 170 阅读 · 0 评论 -
MySQL的日志、索引相关问题
摘抄笔记原创 2022-02-23 19:29:41 · 195 阅读 · 0 评论 -
MySQL中使用count(*)函数时响应很慢,怎么优化?
1、count(*) 的实现方式在不同的 MySQL 引擎中,count(*) 有不同的实现方式。MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个数,效率很高; 而 InnoDB 引擎就麻烦了,它执行 count(*) 的时候,需要把数据一行一行地从引擎里面读出来,然后累积计数。注意,我们在这篇文章里讨论的是没有过滤条件的 count(*),如果加了 where 条件的话,MyISAM 表也是不能返回得这么快的。问题1:为什么 Inno.原创 2022-02-23 13:26:53 · 2908 阅读 · 0 评论 -
MySQL数据表数据删掉一半,表文件大小会变化吗?
这里,我们还是针对 MySQL 中应用最广泛的 InnoDB 引擎展开讨论。一个 InnoDB 表包含两部分,即:表结构定义和数据。在 MySQL 8.0 版本以前,表结构是存在以.frm 为后缀的文件里。而 MySQL 8.0 版本,则已经允许把表结构定义放在系统数据表中了。因为表结构定义占用的空间很小,所以我们今天主要讨论的是表数据。接下来,先你说明为什么简单地删除表数据达不到表空间回收的效果,然后再介绍正确回收空间的方法。1、参数 innodb_file_per_table......原创 2022-02-23 12:45:18 · 394 阅读 · 0 评论 -
MySQL为什么会“抖”一下?(刷脏页flush)
摘抄笔记原创 2022-02-23 10:30:50 · 142 阅读 · 0 评论