MySQL
文章平均质量分 96
MySQL相关知识
程序猿集锦
我邹是想知道这是怎么回事!
展开
-
使用源码编译安装MySQL
微信搜索『coder-home』,或者扫一扫右侧的二维码,关注『程序猿集锦』。了解更多干货分享,还有各类视频教程。扫描它,带走我。文章目录前言环境准备源码编译安装下载MySQL源码解压源码文件开始编译操作安装MySQL数据库生成二进制安装包初始化MySQL创建系统用户执行数据库的初始化启动MySQL服务登录MySQL数据库总结前言前面的文章中,我们介绍了MySQL使用二进制文件安装的大致过程。今天我们来看下另外一种安装方式,那就是使用MySQL的源码自己编译安装MySQL。...原创 2021-01-27 22:22:50 · 3146 阅读 · 1 评论 -
通过二进制文件来安装MySQL
微信搜索『coder-home』,或者扫一扫右侧的二维码,关注『程序猿集锦』。了解更多干货分享,还有各类视频教程。扫描它,带走我。文章目录背景安装前注意事项版本的选择卸载已安装的MySQL配置sudo权限基于二进制安装包安装安装包的下载安装包目录说明解压二进制安装包配置系统环境变量创建文件目录创建操作系统用户初始化MySQL数据库初始化SSL证书启动MySQL服务登录MySQL数据库配置systemctl/service命令启动MySQL总结背景MySQL的安装有很多种方式,...原创 2021-01-27 22:19:25 · 768 阅读 · 0 评论 -
MySQL中日志 - error log
微信搜索『coder-home』,或者扫一扫右侧的二维码,关注『程序猿集锦』。了解更多干货分享,还有各类视频教程。扫描它,带走我。文章目录前言什么是error logerror log的参数修改error log日志目录归档error log总结前言前面我们依次介绍了MySQL中的slow query log慢查询日志、binlog二进制日志、relay log中继日志、redo log重做日志、undo log回滚日志、general log通用日志,现在我们来看下MySQ...原创 2021-01-27 22:04:54 · 2773 阅读 · 0 评论 -
MySQL的日志 - general log
微信搜索『coder-home』,或者扫一扫右侧的二维码,关注『程序猿集锦』。了解更多干货分享,还有各类视频教程。扫描它,带走我。文章目录前言general log如何开启 general loggeneral log的参数general log开启示例通过命令暂时开启通过配置文件永久开启关闭general log清理general log文件总结前言前面的文章中我们介绍了slow query log慢查询日志、binlog二进制日志、relaylog中继日志、redolog...原创 2021-01-27 22:01:03 · 10393 阅读 · 0 评论 -
MySQL的日志 - undo log
微信搜索『coder-home』,或者扫一扫右侧的二维码,关注『程序猿集锦』。了解更多干货分享,还有各类视频教程。扫描它,带走我。文章目录前言什么是undo logundo log的作用undo log的存储空间和系统表空间存放在一起独立的undolog表空间undo log的相关参数独立undolog表空间的意义最后前言前面我们介绍了MySQL中的慢查询slow query log,二进制日志binlog,中继日志relay log,重做日志redolog,今天我们来看一下...原创 2021-01-13 22:31:35 · 2047 阅读 · 4 评论 -
MySQL的日志 - redo log
微信搜索『coder-home』,或者扫一扫右侧的二维码,关注『程序猿集锦』。了解更多干货分享,还有各类视频教程。扫描它,带走我。文章目录前言什么是redologrelaylog的作用物理日志VS逻辑日志redolog的组成redolog的两阶段提交reldolog日志的刷盘redolog对事物的支持redolog和binlog的区别redolog其他的几个参数最后前言前面的文章中,我们依次介绍了MySQL的slow query log、binlog、relaylog,如果对...原创 2021-01-13 22:28:32 · 2760 阅读 · 11 评论 -
MySQL的日志 - relay log
微信搜索『coder-home』,或者扫一扫右侧的二维码,关注『程序猿集锦』。了解更多干货分享,还有各类视频教程。扫描它,带走我。文章目录前言relay log的作用如何开启relay log验证relay log开启的效果relay log日志相关参数relay log日志的清除最后前言前面介绍了MySQL的binlog日志相关的知识点,接下里这篇文章中,我们来看一下relaylog的相关内容。relay-log是记录什么的?MySQL用它做什么?relay log的作...原创 2021-01-13 22:23:47 · 18823 阅读 · 0 评论 -
MySQL的日志 - binlog
微信搜索『coder-home』,或者扫一扫右侧的二维码,关注『程序猿集锦』。了解更多干货分享,还有各类视频教程。扫描它,带走我。文章目录背景MySQL中的日志分类Binlog验证binlog日志是否开启开启和关闭binlog日志如何选择性的开启binlog开启binlog日志后的效果binlog日志文件记录的格式binlog日志文件的大小如何查看binlog日志的内容binlog文件内的结构如何使用binlog日志做增量恢复清理binlog日志文件最后背景MySQL中到底有...原创 2021-01-13 22:19:40 · 696 阅读 · 1 评论 -
MySQL的日志 - slow query log
微信搜索『coder-home』,或者扫一扫右侧的二维码,关注『程序猿集锦』。了解更多干货分享,还有各类视频教程。扫描它,带走我。文章目录背景什么是慢查询日志如何开启慢查询日志慢查询日志的参数如何读懂慢查询日志慢查询日志文件中的日志慢查询日志表中的日志如何分析慢查询日志总结背景你是否有这样的疑问:我还如何定位当前MySQL数据中的一些执行特别耗时的SQL语句,那些特别慢的SQL都有哪些?我怎么样把他们都给筛选出来呢?MySQL中是否可以记录这些执行特别慢的SQL?MySQL...原创 2021-01-13 22:09:34 · 997 阅读 · 0 评论 -
MySQL中varchar字段最大长度是多少
微信搜索『coder-home』,或者扫一扫右侧的二维码,关注『程序猿集锦』。了解更多干货分享,还有各类视频教程。扫描它,带走我。文章目录背景字节和字符的区分为什么是varchar(255)而不是(256)varchar字段最大值是多少latin1字符集编码下utf8字符集编码下utf8mb4字符集编码下总结背景你是否知道MySQL中的varchar字段类型最大能够存储多少数据?它的最大长度是多少?为什么有时候定义一个varchar(10)的字段可以存储10个汉字,但是不能存...原创 2020-12-31 10:55:40 · 10948 阅读 · 2 评论 -
MySQL底层的存储结构
微信搜索『coder-home』,或者扫一扫右侧的二维码,关注『程序猿集锦』。了解更多干货分享,还有各类视频教程。扫描它,带走我。文章目录写在前面的话InnoDB的存储结构Tablespace常见的表空间SegmentExtentPage什么是off-pageInnoDB的文件存储格式写在前面的话你有没有想过这样一个问题:我们的数据在MySQL中是如何存放的?它是以什么样的组织方式存放在我们磁盘中的?我们知道,数据是存放在表里面的,在表里面是一行一行存在的。那么这一行一行的...原创 2020-12-30 16:09:06 · 890 阅读 · 2 评论 -
MySQL中如何按周统计表中的数据
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录背景环境准备准备建表语句初始化数据语句最后的实验环境思路分析总结背景今天算法的同事过来问我MySQL中是否可以根据周的维度去统计某个指标?比如按周统计订单的数量。因为数据量比较大,如果直接全部查询到内存中去统.原创 2020-12-23 10:00:12 · 2007 阅读 · 2 评论 -
MySQL的两阶段所协议2PL
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录背景准备实验环境建表语句初始化数据最终环境实验实验步骤实验截图总结背景经常听到别人说2PL,猛的一听当时真的是一脸懵逼的感觉,啥意思?2PL是什么玩意?后来又听人说两阶段锁协议,这个又是什么?我咋没有听过呢?后来才知这是MySQL中的一个术语:2PL(Two-phase locking),翻译成中文就是两阶段锁协议。废话不多说,我们来用实际的例子体验一把。.原创 2020-12-22 22:50:19 · 800 阅读 · 0 评论 -
MySQL如何按周统计表中数据
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录背景环境准备准备建表语句初始化数据语句最后的实验环境思路分析总结背景今天算法的同事过来问我MySQL中是否可以根据周的维度去统计某个指标?比如按周统计订单的数量。因为数据量比较大,如果直接全部查询到内存中去统计可能比较慢。所以他系统能够在SQL层面先做一次聚合统计,维度是按照周去统计。刚听到这个需求,我有点蒙。按照周的方式去统计?MySQL中估计没有这样的by.原创 2020-12-15 22:40:02 · 2547 阅读 · 0 评论 -
MySQL中间隙锁的加锁机制
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录背景实验环境的准备前置条件准备建表语句准备初始化数据最后的测试环境间隙锁的结构索引的结构间隙锁加锁规则实验部分RR级别+主键索引列RR级别+唯一索引列RR级别+非唯一索引列RR级别+普通字段列总结背景间隙锁是MySQL在RR可重复读隔离级别下用来修复幻读才引入的一种锁,间隙锁也只有在RR可重复读隔离级别下才会存在,如果是在RC读已提交隔离级别下,是没有间隙锁的存.原创 2020-12-14 22:30:44 · 3552 阅读 · 5 评论 -
MySQL在RR级别下到底有没有修复幻读
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录背景疑问点分析什么是快照读开启事务命令的区别什么当前读什么是幻读MySQL到底有没有解决幻读在只有快照读前提下,不会发生幻读当前读的时候,可能会发生幻读当前读中发生的幻读是如何解决的总结背景我最近一直被一个问题困扰着:MySQL在其默认的可重复读(Read-Committed)RR隔离级别下,到底有没有解决幻读的问题?看了网上很多的贴子,感觉每一个帖子都有一个.原创 2020-12-14 22:20:13 · 748 阅读 · 6 评论 -
MySQL中锁的分类
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录锁的概念锁的分类从锁的粒度(范围)划分全局锁表锁元数据锁行锁从功能角度(兼容性)划分共享锁排它锁意向锁意向共享锁意向排它锁从算法角度分记录锁间隙锁临键锁锁的概念在数据库中,多个线程或事物并发的时候,难免会出现访问到同一行数据资源的情况,为了避免这种情况下资源的竞争,数据库数据逻辑的一致性,要合理的控制事务访问的规则。而锁就是用来控制这些访问规则的重要工具。锁的.原创 2020-12-04 22:40:23 · 317 阅读 · 0 评论 -
MySQL中的当前读
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录前言当前读准备实验环境开始实验当前读的概念什么时候会发生当前读更深刻认识当前读前言我们知道脏读、不可重复读、幻读的概念和区别,也知道事务的四种隔离级别:读未提交、读已提交、可重复读、串行化的含义。如果你对这些概念仍然有疑问,关注我,在主页中找到之前分享的文章:MySQL中的事务的理解。事务的隔离级别的提出就是为了修复事务在并发的情况下读数据所发生的各种问题。.原创 2020-12-04 22:34:42 · 1519 阅读 · 2 评论 -
MySQL中行列互转
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录行转列与列转行的概念什么是行转列什么是列转行行转列实验示例示例一:使用聚合函数示例二:使用group_concat函数示例三:使用动态SQL语句块列转行实验示例示例一:使用union all功能示例二:使用substring_index函数最后总结行转列与列转行的概念这里需要重申一下行转列和列转行的区别。有很多的贴子在介绍的时候没有严格的区分,命名介绍的是列转行.原创 2020-12-01 12:28:04 · 1103 阅读 · 0 评论 -
MySQL事务并发问题和解决方案
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我前面文章介绍了事务的相关概念和特性(请参考MySQL中事务的理解)。提到了事务的并发会带来很多问题。比如脏读、不可重复读、幻读等问题。这么问题怎么修复呢?我们逐个复现一下,然后看下MySQL是怎么修复这些问题的。文章目录事务并发问题的验证读未提交隔离级别脏读是如何发生的不可重复读是如何发生的幻读是如何发生的读已提交隔离级别脏读是如何避免的不可重复读是如何发生的幻读是如何.原创 2020-11-28 18:35:38 · 1399 阅读 · 0 评论 -
MySQL5.7中如何使用开窗函数
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录背景准备实验环境准备建表语句初始化数据分组排序分组求和分组求最大值背景在SQL中我们经常遇到一种需求:分组排序,分组求和等各种需求。像这样的需求,如果在Oracle、SQLserver、postgresql等数据库中很容易实现,一个开窗函数row_nubmer() over(partition by xxx,yyy order by zzz)j就可以解决。但是.原创 2020-11-26 18:44:03 · 12387 阅读 · 10 评论 -
MySQL中事务的理解
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录事务的概念事务的四大特性原子性一致性隔离性读未提交读已提交可重复读串行化持久性事务并发带来的问题脏读不可重复读幻读查看修改MySQL的隔离级别事务的概念数据库事务( transaction)是访问并可能操作各种数据项的一个数据库操作序列,这些操作要么全部执行,要么全部不执行,是一个不可分割的工作单位。事务由事务开始与事务结束之间执行的全部数据库操作组成。事务的.原创 2020-11-24 22:05:25 · 253 阅读 · 0 评论 -
MySQL中的各种自增ID
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录背景自增ID的数据类型单位换算规则自增ID取值范围无符号位的计算方式有符号位的计算方式int和int(11)有什么区别表自增主键的自增值MySQL全局的自增值row_idXidInnodb的事务ID线程ID总结背景MySQL中有各种各样的自增ID。例如我们最常见的表的自增ID,Xid,事务的ID,线程的ID,表的编号ID,binlog日志文件的ID等等。这些ID.原创 2020-11-23 20:34:53 · 575 阅读 · 0 评论 -
MySQL自增主键的键值为何不连续
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录什么是连续自增主键?为什么要自增主键何时才使用到自增键的自增值主键的自增值记录在哪里自增值不连续的原因唯一索引约束插入数据失败事务回滚操作批量插入数据InnoDB的自增值为什么不能回收利用?什么是连续自增主键?我们经常理解的像1,2,3,4,5,6...,n这样的主键才是连续自增的主键。那么如果我的主键值是1,3,5,7...,2n+1这样的值算是连续自增主键.原创 2020-11-22 21:08:32 · 987 阅读 · 0 评论 -
MySQL中授权的粒度和时效性
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录背景授权的通配符权限存储范围和时效性对比授予某个数据库的所有权限授予数据库中某个表的所有权限授予数据库表中某个字段的所有权限总结背景MySQL中对权限的控制力度是怎样的?能够控制某个用户只能访问某一个或某几个数据库吗?能够控制某个用户只能访问某一些字母开头的数据库吗?能够控制某个用户只能访问某个库下面某个表的某些字段吗?这些授权的时效性是如何的?对于已经.原创 2020-11-21 18:48:06 · 1006 阅读 · 0 评论 -
MySQL何时执行flush privileges
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录需求背景创建用户给用户授权授权并创建用户验证登录收回授权删除用户总结需求背景我们平时在给用户授权grant语句执行后,都习惯性的执行一个命令flush privileges;,但是我发现有时候不执行这个命令,授权语句执行之后,权限验证也是OK的,但是有时候发现不执行这个flush privileges;命令,权限认证还不能通过。那么到底什么情况下需要执行fls.原创 2020-11-21 18:47:45 · 1362 阅读 · 0 评论 -
MySQL查询和更新语句的执行过程
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录MySQL整体架构Server层连接器查询缓存解析器(分析器)预处理器优化器执行器存储引擎层查询语句执行过程更新语句执行过程更新语句注意项目binlog日志何时刷盘redolog日志何时刷盘redolog的两阶段提交binlog和redolog的区别为什么要有binlog为什么要有redologMySQL整体架构要想了解MySQL数据库查询语句的执行过程,首选我.原创 2020-11-21 18:46:31 · 546 阅读 · 0 评论 -
MySQL如何删除重复数据
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录初始化实验环境明确需求查找重复的数据查找要保留的数据删除重复的数据方法一方法二方法三写法1写法2总结MySQL中经常会遇到重复的数据,那么当我们遇到重复的时候的时候,如果定位哪些数据是有重复的记录?如何删除重复的数据?我们该怎么做呢?接下来我们一步步来分析一下遇到这样的情况后,该如何处理。初始化实验环境我们创建一个简单的表user_info,然后基于这个表进行.原创 2020-11-18 18:47:11 · 18411 阅读 · 1 评论 -
重新认识MySQL的备份和还原
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录需求背景备份和还原的拓扑图逻辑备份的shell脚本逻辑还原的shell脚本需求背景数据库备份的重要性就不再赘述了。前段时间,我们的一个数据库,由于一些网络安全组的配置错误,导致被黑客攻击黑掉,数据表全部被删掉了,如果想要数据就要给黑客指定的账号充比特币,更详细的信息可以参考我之前分享的一篇文章《MySQL被黑掉的一次记录》。试想一下,如果被黑掉的数据库没有备份.原创 2020-11-16 19:06:17 · 270 阅读 · 0 评论 -
MySQL被黑的一次记录
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录背景问题排查推测原因最后的决定防御措施不知道大家有没有经历过MySQL数据库被黑底的情况,今天给大家分享一下我这次的经历。背景昨天我们的一个同事给我们反馈说,我们的一个应用不能正常使用了,我们就去排查了一下具体的原因。最后定位到是数据库连接有问题,再进一步排查发现表都不存在了,只有一个这样的表在我们的数据库里面。打开这个表之后,里面有这样下面截图中的这样的.原创 2020-11-15 16:11:48 · 814 阅读 · 0 评论 -
MySQL中驱动表和被驱动表的解读
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录MySQL中的驱动表和被驱动表什么是straight_joinjoin的类别straight_joinstraight_join使用示例驱动表和被驱动表概念解释如何区分驱动表和被驱动表join中如何写驱动表和被驱动表left joinright joininner join所谓的小表是什么表join buffer的概念两个表join执行的过程是怎么样的Index .原创 2020-11-14 17:31:41 · 3259 阅读 · 1 评论 -
MySQL的Online DDL语句
微信搜索“coder-home”或扫一扫下面的二维码,关注公众号,第一时间了解更多干货分享,还有各类视频教程资源。扫描它,带走我文章目录MySQL的Online DDL语句概念诉求背景解决方法原生支持的方式使用第三方工具下载安装Percona Toolkit下载二进制压缩包使用yum来安装使用Percona Toolkit冗余字段主从延迟的规避MySQL的Online DDL语句概念什么是Online DDL?在了解Online DDL之前,我们先来了解一下什么是DDL。说到DDL,就不得.原创 2020-11-14 17:20:02 · 640 阅读 · 0 评论 -
MySQL中innodb_buffer_pool_size的配置
文章目录innodb_buffer_pool_size参数概念理解相关连的参数innodb_buffer_pool_chunk_sizeinnodb_buffer_pool_instances关联参数之间的关系设置innodb_buffer_pool_size时的注意事项占50%~75%的内存是否真合适判断现在的innodb_buffer_pool_size是否合适判断依据关注我,获取更多分享。innodb_buffer_pool_size参数对于参数innodb_buffer_pool_size原创 2020-11-09 22:25:07 · 5003 阅读 · 3 评论 -
MySQL中show status和show variables的区别
文章目录show status VS show variables何时用status何时用variables区别statusvariables使用示例关注我,获取更多分享。show status VS show variables在MySQL中,我们经常使用如下两个命令来查看MySQL服务器的一些参数配置信息。show status like '%xxx%';show variables like '%xxx%';有时候又用到如下两个命令:show global status like原创 2020-11-05 17:40:26 · 1520 阅读 · 0 评论 -
MySQL主从复制的优化
主从复制的优化背景:mysql当主从复制是异步进行的(主库在写入数据后不管数据是否成功同步到从库就直接把写入成功的结果返回给客户端了)。所有从库和主库之间肯定会存在数据同步的时间差。如果减少这个同步的时间差就显得尤为重要。当主库中执行一个操作的时候,特别是大的事务操作,只有当这个事务提交成功后,对主库的修改才会写入到主库的binlog文件中。然后,从库才可以从主库的binlog中去读取这些变动,然后把这些变动更新到从库的中继日志中。然后在从中继日志中更新到从库的数据库中。默认是只有一个线程来同步主库的原创 2020-10-21 15:45:36 · 322 阅读 · 1 评论 -
MySQL读写分离的配置、主从同步的配置
文章目录MySQL读写分离基于日志点的复制主从服务器的配置创建同步用的用户主服务器配置从服务器配置历史数据的同步把数据从主库中导出在从库中导入主库的数据配置和启动同步链路配置同步链路启动同步链路日志点复制的优缺点日志点复制的优点日志点复制的缺点基于GTID的复制主从服务器的配置创建同步用的用户主服务器配置从服务器配置历史数据的同步把数据从主库中导出在从库中导入主库的数据配置和启动同步链路配置同步链路启动同步链路GTID复制的优缺点GTID复制的优点GTID复制的缺点MySQL读写分离一个数据库服务器用来原创 2020-10-16 12:26:05 · 607 阅读 · 1 评论