
MySQL
文章平均质量分 92
dz45693
我是一个软件开发人员,有较强的责任心,是一个典型的技术爱好者。在此希望能认识更多好朋友。
展开
-
线上服务宕机,码农试用期被毕业,原因竟是给MySQL加个字段
适用范围:对表结构进行操作,比如create、drop、alter、rename、truncate等。转载 2022-10-11 10:03:15 · 1012 阅读 · 1 评论 -
基于Redo Log和Undo Log的MySQL崩溃恢复流程
在之前的文章「简单了解InnoDB底层原理」聊了一下MySQL的Buffer Pool。这里再简单提一嘴,Buffer Pool是MySQL内存结构中十分核心的一个组成,你可以先把它想象成一个黑盒子。黑盒下的更新数据流程当我们查询数据的时候,会先去Buffer Pool中查询。如果Buffer Pool中不存在,存储引擎会先将数据从磁盘加载到Buffer Pool中,然后将数据返回给客户端;同理,当我们更新某个数据的时候,如果这个数据不存在于Buffer Pool,同样会先数据加载进来,然后修改修改转载 2021-01-26 21:19:24 · 1665 阅读 · 2 评论 -
深入理解MySQL系列之redo log、undo log和binlog
事务的实现redo log保证事务的持久性,undo log用来帮助事务回滚及MVCC的功能。InnoDB存储引擎体系结构redo logWrite Ahead Log策略事务提交时,先写重做日志再修改页;当由于发生宕机而导致数据丢失时,就可以通过重做日志来完成数据的恢复。InnoDB首先将重做日志信息先放到重做日志缓存 按一定频率刷新到重做日志文件重做日志文件: 在默认情况,InnoDB存储引擎的数据目录下会有两个名为ib_logfile1和ib_logfile2的文转载 2020-12-26 14:03:12 · 1087 阅读 · 0 评论 -
mysql timeout调研与实测
mysql的timeout有多少种,之间的区别时什么?本文从实测和代码分析的角度验证了不同的超时参数的作用。接触网络编程我们不得不提的就是超时,TCP建立连接的超时,数据报文发送/接收超时等等,mysql在超时上也做足了功夫。123456Variable_name Default Valueconnect_timeout 5interactive_timeout 28800net_read_tim...转载 2018-03-10 10:55:13 · 1875 阅读 · 0 评论 -
MySQL日志——Undo | Redo
00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。- 事务的原子性(Atomicity)事务中的所有操作,要么全部完成,要么不做任何操作,不能只做部分操作。如果在执行的过程中发生了错误,要回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过。- 原理Undo L...转载 2018-03-26 17:05:25 · 1612 阅读 · 0 评论 -
mysql日志设置优化
前言在安装完MySQL之后,肯定是需要对MySQL的各种参数选项进行一些优化调整的。虽然MySQL系统的伸缩性很强,既可以在有很充足的硬件资源环境下高效的运行,也可以在极少资源环境下很好的运行,但不管怎样,尽可能充足的硬件资源对MySQL的性能提升总是有帮助的。在这一节我们主要分析一下MySQL的日志(主要是Binlog)对系统性能的影响,并根据日志的相关特性得出相应的优化思路。日志产生的性能影响...转载 2018-03-27 17:56:18 · 1785 阅读 · 0 评论 -
关于MySQL连接抛出Authentication Failed错误分析
【问题描述】在应用端,偶尔看到有如下报错:Authentication to host 'xxxx' for user 'yyyy' using method 'mysql_native_password' failed with message: Reading from the stream has failed. 表现特征: 1.只有用Connector/NET 出现...转载 2018-10-15 16:14:19 · 4068 阅读 · 0 评论 -
SQLyog连接数据库报错plugin caching_sha2_password could not be loaded
打开cmd:mysql -uroot -p 进入mysql依次执行下面语句ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; #修改加密规则 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY ...转载 2018-10-22 16:38:53 · 1975 阅读 · 1 评论 -
MySQL 索引
目录索引介绍索引创建索引的删除MySQL索引查看MySQL聚簇索引和辅助索引InnoDB索引物理结构索引使用策略索引统计信息索引碎片处理 索引介绍在MySQL中,索引是高效获取数据的最重要的数据结构,通常在表数据越来越多情况下获取数据的效率开始下降,而索引或者叫做键可以有效提升效率。理解索引工作的方式最好的办法就是把索引比喻成书的目录,当需要查看特定...转载 2018-10-29 14:22:17 · 1938 阅读 · 0 评论 -
windows Docker Desktop 搭建mysql,mssql和redis服务
其实网上关于docker上搭建mysql的文章已经很多了,只是今晚自己搭建的时候遇到一些问题,记录一下1.首先是pull image ,docker pull mysql2.启动服务docker run --name mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=ncs123456# -d mysql可是这样确实启动起来了,但是用客服端...原创 2019-03-12 23:53:36 · 4541 阅读 · 0 评论 -
MySQL innodb的锁机制解读
网上有许多关于innodb的锁机制的文章,有许多文章讲述的不明白或者有问题,最近研究了好久,结合网上资料和实践操作,记录一下,供大家参考。如果有不对的地方,请随时留言。一 Innodb具备的锁种类1. 表锁(MySQL提供的,跟存储引擎无关)2. 行锁(Innodb存储引擎实现)二 Innodb内部实现的锁种类1. 记录锁对应Innodb的行锁,记录转载 2017-08-31 08:27:11 · 1809 阅读 · 0 评论 -
MySQL Replication 主从复制全方位解决方案
阅读目录1.1 主从复制基础概念1.2 MySQL主从复制介绍1.3 主从搭建配置1.4 MySQL主从复制常见问题1.5 【生产案例】主从复制事故1.6 mysql半同步复制1.7 主从复制架构的演变1.8 参考文献回到顶部1.1 主从复制基础概念 在了解主从复制之前必须要了解的就是数据库的二进制日志(binlog),主从复制架构大多基于二进制日志进行,二进制日转载 2018-01-09 17:03:18 · 2571 阅读 · 0 评论 -
MySQL的并发控制与加锁分析
本文主要是针对MySQL/InnoDB的并发控制和加锁技术做一个比较深入的剖析,并且对其中涉及到的重要的概念,如多版本并发控制(MVCC),脏读(dirty read),幻读(phantom read),四种隔离级别(isolation level)等作详细的阐述,并且基于一个简单的例子,对MySQL的加锁进行了一个详细的分析。本文的总结参考了何登成前辈的博客,并且在前辈总结的基础上,进行了一些基转载 2016-11-18 17:31:50 · 2393 阅读 · 1 评论 -
MySQL中锁详解(行锁、表锁、页锁、悲观锁、乐观锁等)
InnoDB锁问题InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。行级锁与表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题。下面我们先介绍一点背景知识,然后详细讨论InnoDB的锁问题。背景知识1.事务(Transaction)及其ACID属性事务是由一组SQ语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为转载 2016-11-18 17:14:15 · 1944 阅读 · 0 评论 -
MySQL 5.7 并行复制实现原理与调优
众所周知,MySQL的复制延迟是一直被诟病的问题之一,然而在Inside君之前的两篇博客中(1,2)中都已经提到了MySQL 5.7版本已经支持“真正”的并行复制功能,官方称为为enhanced multi-threaded slave(简称MTS),因此复制延迟问题已经得到了极大的改进,甚至在Inside君所在的网易电商应用中已经完全消除了之前延迟长达几小时的问题。然而,Inside君发现还是有转载 2017-03-29 09:00:46 · 3171 阅读 · 0 评论 -
mysql 字符串分割 和 动态执行拼接sql
人以前主要用的是MSSQL,最近项目在使用MYSQL,自己是一个 典型的小白。今天就记录一下 一个mysql存储过程,里面需要分割字符串和 动态执行sql语句。关于字符串 分割我开始使用 LOCATE 和Position来做,不知道在proc 里面有时候报错,单独的查询有可以。后来在网上 找了一个 Mysql存储过程中字符串分割文章, 很多地方都推荐使用 SET @result =原创 2017-03-14 10:00:04 · 4832 阅读 · 0 评论 -
mysql中各种类型变量的定义以及赋值使用
该文总体框架http://www.cnblogs.com/zhuawang/p/4090916.html第一节http://blog.youkuaiyun.com/seteor/article/details/17682551MySQL存储过程中,定义变量有两种方式: 1.使用set或select直接赋值,变量名以 @ 开头. 例如:set @var=1; 可以在一个会话的转载 2017-03-14 11:17:37 · 2519 阅读 · 0 评论 -
mysql insert锁机制
一、前言上周遇到一个因insert而引发的死锁问题,其成因比较令人费解。于是想要了解一下insert加锁机制,但是发现网上介绍的文章比较少且零散,挖掘过程比较忙乱。本以为只需要系统学习一个较完全的逻辑,但是实际牵扯很多innodb锁相关知识及加锁方式。我好像并没有那么大的能耐,把各种场景的加锁过程一一列举并加之分析;亦没有太多的精力验证网上的言论的准确性。只好根据现在了转载 2017-08-31 08:23:03 · 1778 阅读 · 0 评论 -
InnoDB的B+树索引
B+树索引其本质就是B+树在数据库中的实现,但是B+索引在数据库中有一个特点就是其高扇出性,因此在数据库中,B+树的高度一般都在2~3层,也就是对于查找某一键值的行记录,最多只需要2到3次IO,这倒不错。因为我们知道现在一般的磁盘每秒至少可以做100次IO,2~3次的IO意味着查询时间只需0.02~0.03秒。数据库中的B+树索引可以分为聚集索引(clustered index)和辅助聚集转载 2017-11-28 18:52:36 · 3154 阅读 · 0 评论 -
MySQL出现Waiting for table metadata lock的原因以及解决方法
转自:http://ctripmysqldba.iteye.com/blog/1938150 (有修改)MySQL在进行alter table等DDL操作时,有时会出现Waiting for table metadata lock的等待场景。而且,一旦alter table TableA的操作停滞在Waiting for table metadata lock的状态,后续对TableA的任转载 2017-12-23 16:37:46 · 2634 阅读 · 0 评论 -
AUTO-INC锁和AUTO_INCREMENT在InnoDB中处理方式
AUTO-INC LocksAn AUTO-INC lock is a special table-level lock taken by transactions inserting into tables with AUTO_INCREMENT columns. In the simplest case, if one transaction is inserting values转载 2018-01-06 14:45:18 · 3073 阅读 · 0 评论