分类: Mysql
MySQL 的 RR 到底有没有解决幻读
本文由原作者归档自知乎,原文发布于 2026-06-15。原文链接:MySQL 的 RR 到底有没有解决幻读。 MySQL 的 RR 到底有没有解决幻读? 关于数据库隔离级别,有一个流传很多年的结论:Read Committed 解决脏读,Repeatable Read 解决不可重复读,Serializable 解决幻读。 所以很多人的认知是:RR 解决不了幻读。 但如果你查 MySQL 官方文档或者一些数据库专家的分享,又会看到另外一种说法:InnoDB 的 RR 已经解决了幻读。 那么问题 …
本文由原作者归档自知乎,原文发布于 2026-06-15。原文链接:MySQL 的 RR 到底有没有解决幻读。 MySQL 的 RR 到底有没有解决幻读? 关于数据库隔离级别,有一个流传很多年的结论:Read Committed 解决脏读,Repeatable Read 解决不可重复读,Serializable 解决幻读。 所以很多人的认知是:RR 解决不了幻读。 但如果你查 MySQL 官方文档或者一些数据库专家的分享,又会看到另外一种说法:InnoDB 的 RR 已经解决了幻读。 那么问题 …
MaxScale不支持MySQL8.0的问题
本文由原作者归档自 CSDN,原文发布于 2022-01-19。原文链接:MaxScale不支持MySQL8.0的问题。 背景 mysql的版本是8.0.12,通过maxsclae进行读写分离时,业务端使用mysql-connctor-java-8.0.15.jar访问一直报错。 现象 使用mysql-connctor-java-8.0.15.jar连接mysql 读写分离时,报错,内容如下: 使用mysql-cli直连mysql不报错,但是版本号有问题 使用mariadb-cli直连 …
本文由原作者归档自 CSDN,原文发布于 2022-01-19。原文链接:MaxScale不支持MySQL8.0的问题。 背景 mysql的版本是8.0.12,通过maxsclae进行读写分离时,业务端使用mysql-connctor-java-8.0.15.jar访问一直报错。 现象 使用mysql-connctor-java-8.0.15.jar连接mysql 读写分离时,报错,内容如下: 使用mysql-cli直连mysql不报错,但是版本号有问题 使用mariadb-cli直连 …
不同数据库支持情况对比
本文由原作者归档自 CSDN,原文发布于 2021-04-01。原文链接:不同数据库支持情况对比。 SQL支持 事务支持 存储支持 集群支持 产品 Y Y 硬盘 Y https://github.com/pingcap/tidb https://github.com/greenplum-db/gpdb https://github.com/cockroachdb/cockroach Y Y 硬盘 N https://github.com/mysql/mysql-server (inndob存储 …
本文由原作者归档自 CSDN,原文发布于 2021-04-01。原文链接:不同数据库支持情况对比。 SQL支持 事务支持 存储支持 集群支持 产品 Y Y 硬盘 Y https://github.com/pingcap/tidb https://github.com/greenplum-db/gpdb https://github.com/cockroachdb/cockroach Y Y 硬盘 N https://github.com/mysql/mysql-server (inndob存储 …
mysql limit offset 原理分析与使用
本文由原作者归档自 CSDN,原文发布于 2021-03-16。原文链接:mysql limit offset 原理分析与使用。 背景 一个行数为4亿条的表。 查询50000000~50000010行之间的数据。发现查询时间达到20s!!! 查询执行计划发现,需要进行全表扫描,没有索引。 但是,sbtest1这个表是有索引的 为什么mysql没有选择索引,而是全表扫描呢? 分析 mysql select 语法 SELECT [ALL | DISTINCT | DISTINCTROW ] …
本文由原作者归档自 CSDN,原文发布于 2021-03-16。原文链接:mysql limit offset 原理分析与使用。 背景 一个行数为4亿条的表。 查询50000000~50000010行之间的数据。发现查询时间达到20s!!! 查询执行计划发现,需要进行全表扫描,没有索引。 但是,sbtest1这个表是有索引的 为什么mysql没有选择索引,而是全表扫描呢? 分析 mysql select 语法 SELECT [ALL | DISTINCT | DISTINCTROW ] …
mysql异步复制、半同步复制、组复制
本文由原作者归档自 CSDN,原文发布于 2021-03-03。原文链接:mysql异步复制、半同步复制、组复制。 异步复制 sorce不管replica的死活,写进binlog后,commit完成就算成功。如果最后一个event没有发给replica,主库就挂了,那么就会有丢失数据的风险。 半同步复制 通过官方的半同步插件,将binlog写完后,发送给replica,当replica写入到relay log后,在主库commit。这样可以最大情况保证数据能发送到replica。但是如果 …
本文由原作者归档自 CSDN,原文发布于 2021-03-03。原文链接:mysql异步复制、半同步复制、组复制。 异步复制 sorce不管replica的死活,写进binlog后,commit完成就算成功。如果最后一个event没有发给replica,主库就挂了,那么就会有丢失数据的风险。 半同步复制 通过官方的半同步插件,将binlog写完后,发送给replica,当replica写入到relay log后,在主库commit。这样可以最大情况保证数据能发送到replica。但是如果 …
xtrabackup备份原理与实现
本文由原作者归档自 CSDN,原文发布于 2021-02-04。原文链接:xtrabackup备份原理与实现。 预备知识 xtrabackup备份时,为了保证数据的一致性,会执行以下几个sql来保证位点的准确。 200817 10:20:33 2141744 Query SET SESSION lock_wait_timeout=31536000 2141744 Query FLUSH NO_WRITE_TO_BINLOG TABLES 2141744 Query FLUSH TABLES …
本文由原作者归档自 CSDN,原文发布于 2021-02-04。原文链接:xtrabackup备份原理与实现。 预备知识 xtrabackup备份时,为了保证数据的一致性,会执行以下几个sql来保证位点的准确。 200817 10:20:33 2141744 Query SET SESSION lock_wait_timeout=31536000 2141744 Query FLUSH NO_WRITE_TO_BINLOG TABLES 2141744 Query FLUSH TABLES …
mysqldump引发数据库不可读写的血案
本文由原作者归档自知乎,原文发布于 2021-01-26。原文链接:mysqldump引发数据库不可读写的血案。 问题 一直认为mysql在dump时候加上 –single-transaction 就不会影响业务,除非有DDL同时在操作同一张表。但是最近发现即是没有DDL也有锁表情况,慢日志记录详情如下: # Time: 210115 3:05:10 # User@Host: sss[sss] @ [x.x.x.x] Id: 6109323 # Query_time: 61.872232 …
本文由原作者归档自知乎,原文发布于 2021-01-26。原文链接:mysqldump引发数据库不可读写的血案。 问题 一直认为mysql在dump时候加上 –single-transaction 就不会影响业务,除非有DDL同时在操作同一张表。但是最近发现即是没有DDL也有锁表情况,慢日志记录详情如下: # Time: 210115 3:05:10 # User@Host: sss[sss] @ [x.x.x.x] Id: 6109323 # Query_time: 61.872232 …