MySQL
风度玉门
人得先清心寡欲,方能高枕无忧。
展开
-
MySQL的并行复制策略
文章目录按表分发策略按行分发策略MySQL5.6 的并行复制MariaDB 的并行复制MySQL5.7 的并行复制MySQL5.7.22 的并行复制前面介绍的MySQL 的主从复制流程如下所示:主备延迟的主要原因在于,master A 上产生 binlog 的速度大于slave B 处理 binlog 的速度。数据的积压就在于 sql_thread 处理的速度。在 MySQL 5.6 版本之...原创 2019-12-28 13:59:44 · 1220 阅读 · 0 评论 -
MySQL主备复制
文章目录MySQL 主备原理binlog 的 3 种格式statementrowmixed循环复制问题我们知道MySQL中的binlog 可以用来归档,同时也可以用来做主从同步,今天来详细介绍一下。MySQL 主备原理从上面流程可以看出,A 节点是主库,B 节点是从库。通常情况下从库我们会设置为 readonly ,这样可以防止因业务代码中的切换 BUG 造成 在从库写数据;同时我们也可以...原创 2019-12-28 13:54:08 · 816 阅读 · 0 评论 -
MySQL 的 binlog 和 redo log 写入原理
文章目录binlog 的写入流程redo log 写入流程组提交组提交优化总结binlog 的写入流程事务执行过程中,binlog 首先会被写到 binlog cache 中;事务提交的时候,再讲binlog cache 写到 binlog 文件中。一个事务的 binlog 是原子的,无论多大都需要保证完整性。系统为每个客户端线程分配一个 binlog cache,其大小由 binlog_c...原创 2019-12-28 13:49:39 · 2849 阅读 · 0 评论 -
MySQL加锁原理
文章目录解决幻读加锁规则Demo1:等值查询间隙锁Demo2:非唯一索引等值锁Demo3:主键索引范围锁Demo4:非唯一索引范围锁Demo5:唯一索引范围锁bugDemo6:非唯一索引上存在“等值”的例子Demo7:limit语句加锁Demo8:一个死锁的例子对于MySQL 的加锁规则,笔者之前了解到的也只是行锁的概念。除了业务代码中使用的乐观锁、悲观锁,也没有深入了解MySQL 真正加锁规则...原创 2019-12-28 13:41:10 · 943 阅读 · 0 评论 -
影响MySQL查询性能的案例
文章目录WHERE条件字段使用函数字段隐式转换隐式字符编码转换解决方案在互联网应用中,通常情况下我们查询DB 只会使用简单的、查询效率较高的SQL,大部分的逻辑都需要在代码中去实现。今天介绍一下,一些看起来简单的SQL,也有可能导致查询性能的低下。WHERE条件字段使用函数假设我们有如下创建表的语句mysql> CREATE TABLE `tradelog` ( `id` int...原创 2019-12-28 13:29:34 · 610 阅读 · 1 评论 -
MySQL的 order by 工作原理
在程序设计当中,我们很多场景下都会用 group by 关键字。比如在分页读取数据时,为了避免重复扫描记录,这就是必须要使用 group by 了。比如我们使用如下 DDL 创建表:CREATE TABLE `user_info` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键ID', `city` varchar(16) NOT ...原创 2019-11-13 20:30:50 · 1530 阅读 · 0 评论 -
MySQL删除数据表空间不变原因
文章目录innodb_file_per_table数据删除流程重建表Online 和 inplace作为一名资深的CV 战士,我们可能很少去关注 MySQL的数据文件存储在哪里。当我们执行一批删除操作的时候,也不会去观察数据库文件的大小到底有没有变化。下面我们一起来看一下 MySQL 数据存储相关的原理。在MySQL 8.0 之前,表结构定义是存储在 .frm 为后缀的文件里,如下图所示。因为...原创 2019-11-13 20:17:20 · 1343 阅读 · 0 评论 -
MySQL抖动的原因
文章目录刷脏页触发刷脏页的条件InnoDB 的 flush 脏页策略我们在使用MySQL实现业务处理的时候,更多的关注可能在SQL本身上面是不是最优的。今天我们从一个很小的点去看一下MySQL的实现原理,那就是MySQL刷脏页相关的问题。刷脏页在MySQL中,如果内存数据页(buffer pool)和磁盘数据不一致时,这个内存数据页我们认为是“脏页”;当内存数据页 flush 到磁盘之后,内...原创 2019-11-13 20:08:43 · 806 阅读 · 0 评论 -
MySQL字符串加索引
文章目录Demo详解我们在创建MySQL的字符串索引时,用的最多的就是对所有字符创建索引。但是往往我们忽略的是,字符串可以创建左前缀的索引,这样更短的字符索引可以减少索引的维护成本,下面详细介绍一下。Demo比如我们通过邮箱去检索用户的信息,就可能会执行如下的SQL 查询。mysql> select a, b from user where email = 'xxx@qq.com';...原创 2019-11-13 19:59:44 · 871 阅读 · 0 评论 -
MySQL普通索引和唯一索引的区别
文章目录查询流程区别更新过程区别change buffer索引选择change buffer 与 redo log对于普通索引和唯一索引的使用,对于一个开发来说,我相信更多的区别场景就是:如果需要在库里面做一个唯一限制,就使用唯一索引;否则就使用普通索引了。下面主要介绍一下这 2 种索引的区别(使用MySQL时,大多数场景下使用的是B+ 索引,下面的案例或者描述默认都是 B+ 索引)。查询流程...原创 2019-11-13 19:52:46 · 1377 阅读 · 1 评论 -
MySQL事务隔离原理
文章目录一致性视图工作原理更新操作可重复读和读已提交的区别首先来介绍一下 MySQL 里面的“视图”的概念。视图:查询语句定义的虚拟表,可以通过 create view … 来创建。一致性视图:InnoDB 实现的,在 MVCC 中用到的,用于支持 RC (Read Commited,读提交) 和 RR (Repeatable Read,可重复读)隔离级别的实现。一致性视图工作...原创 2019-02-23 10:48:31 · 1115 阅读 · 0 评论 -
MySQL全局锁表锁&行锁
文章目录全局锁FTWRLmysqldumpset global readonly = true表级锁表锁MDL (metadata lock)行锁两阶段锁死锁在我们开发的过程中,使用全局锁和表锁的场景比较少,接触的也相对少一点,下面主要介绍一下。全局锁FTWRL全局锁就是对整个数据库实例加锁,MySQL 提供了 flush tables with read lock (FTWRL) 的方式...原创 2019-02-23 10:41:39 · 849 阅读 · 1 评论 -
MySQL索引结构
文章目录常见索引类型Hash索引B+索引InnoDB的索引结构主键索引和普通索引的区别索引维护主键ID自增覆盖索引联合索引索引下推数据库的索引就像一本书的目录一样,它可以快速定位你所需要的信息。下面来详细说一下MySQL的索引结构。常见索引类型Hash索引Hash索引的底层实现是由Hash表来实现的,非常适合以 key-value 的形式查询,也就是单个key 查询,或者说是等值查询。其结...原创 2019-02-23 10:31:49 · 1861 阅读 · 0 评论 -
MySQL事务隔离级别
文章目录事务隔离级别事务隔离的实现谈到事务最先想到的就是 ACID 属性(Atomicity 原子性、Consistency 一致性、Isolation 隔离性、Durability 持久性),今天主要介绍一下MySQL的隔离属性。事务隔离级别SQL标准里定义的隔离级别有以下 4 种:读未提交:一个事务可以读取到,另外一个事务尚未提交的变更。读已提交:一个事务提交后,其变更才会被...原创 2019-02-23 10:24:06 · 4162 阅读 · 2 评论 -
mysql数据操作命令
============================== 导出/导入查询结果 ==============================【导出查询结果 outfile 】★ 例:select * into outfile 'e:/file/bak' from table_name;【注意】:★ 不能覆盖已存在文件 ★ 默认用制表符分隔数据★ 例:select原创 2013-12-11 22:04:51 · 743 阅读 · 0 评论 -
mysql编程 自定义函数 存储函数
================================= SQL编程 =================================【结束符】 ; \g \G【变量】:1、系统变量 2、用户自定义变量// 变量的有效范围是,从连接建立到断开。★ 系统变量:查看系统变量( show variables)★ 自定变量:set 变量原创 2013-12-11 22:13:04 · 1189 阅读 · 0 评论 -
mysql数据类型
★数据类型【数值型】:tinyint (1字节、-128~127)、smallint (2字节)、mediumint (3字节)、int (4字节)、bigint (8字节) 浮点数: float (4字节、精度在6位左右)、double (8字节、精度16位左右) 定点数: decimal ()//type(8, 3);【日期时间型】:year (1字节)、t原创 2013-12-11 21:56:13 · 786 阅读 · 0 评论 -
面试-MySQL
1 事务的特性事务具有四个特性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持续性(Durability)。这四个特性也简称ACID性。(1)原子性:事务是应用中最小的执行单位,就如原子是自然界最小颗粒,具有不可再分的特征一样。事务是应用中不可再分的最小逻辑执行体。(2)一致性:事务执行的结果,必须使数据库从一个一致性状态,变到另原创 2015-07-21 10:32:54 · 1514 阅读 · 0 评论 -
mysql简单命令
★安装配置【最大连接数】:1000【开启、关闭服务】:1、net start 服务名、net stop 服务名;2、运行mysqld.exe即可【执行脚本】:'\.'或者source【显示数据库、表】:show databases、show tables【表描述】:desc dept【分页命令】:limit 3, 2 (从第3条开始取2条)【自动递增】原创 2013-12-11 21:51:38 · 740 阅读 · 0 评论 -
mysql查询命令
【查看校对规则】:show collation;//各种字符编码下的比较规则【联合查询】-----union★ 如要去除重复记录,则要使用union all【例】:(select ...) //★ 【子语句排序】:则同时需要使用limit和order by关键字 union all(select ...) //★ 【总体排序】:直接在最后一个语句后面加上原创 2013-12-11 22:00:55 · 873 阅读 · 0 评论 -
CentOS7安装MySQL5.7
下载 Mysql yum包安转软件源安装MySQL服务端启动MySQL检查运行状态修改临时密码获取临时密码登录并修改密码修改密码授权远程机器登录下载 Mysql yum包官方下载地址为:http://dev.mysql.com/downloads/repo/yum/wget http://repo.mysql.com/mysql57-commu...原创 2018-07-17 10:47:21 · 542 阅读 · 0 评论 -
Linux安装MySQL
删除MySQLyum remove mysql mysql-server mysql-libs mysql-server将找到的相关目录或文件删除find / -name mysql查询出的结果,使用yum remove删除rpm -qa | grep mysql安装MySQLyum install mysql mysql-server mysql-...原创 2018-07-12 12:00:47 · 170 阅读 · 0 评论 -
MySQL架构设计
文章目录连接器查询缓存分析器优化器执行器MySQL用了好多年了,但是对于大部分开发人员来说,还是停留在使用上面。接下来的数篇文章将记录一下,MySQL原理的实现原理。首先看一下MySQL的架构图,如下所示:从上面的示意图可以看出,MySQL从上到下包含了:客户端、Server层和存储引擎层。对于客户端实现,可以是我们常用的MySQL命令行窗口,或者是Java的客户端程序等等,这里不做过多的...原创 2019-02-23 10:12:16 · 955 阅读 · 1 评论 -
MySQL日志系统
文章目录redo logbinlog总结当我们在MySQL客户端执行更改数据库的操作时,就会牵扯到日志系统了。如我们使用最多的存储引擎InnoDB而言,里面就会用到:redo log (重做日志)和 binlog(归档日志)。下面主要介绍一下这两种日志的区别与联系:redo log在MySQL里,如果我们要执行一条更新语句。执行完成之后,数据不会立马写入磁盘,因为这样对磁盘IO的开销比较大。...原创 2019-02-23 10:18:44 · 777 阅读 · 0 评论 -
mysql事务视图触发器
=============================== 视图 ===============================【创建视图】:create view as select ...★ 【注意】:主要用于外部查看数据,也可以进行增、删、改【删除视图】:drop view [if exists] view_name;【修改视图】:al原创 2013-12-11 22:08:35 · 908 阅读 · 0 评论