mysql
xinfei0803
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2021-07-30
1.从一个事故说起给一个小表加字段为何把整个库搞挂了?注意:事务中的MDL锁,在语句执行时开始申请,但是语句结束后并不会马上释放,而是等到这个事物提交后才释放;1、Session A和session B需要加MDL读锁2、session C需要加MDL写锁,此时会阻塞3、Session C被阻塞后,session D申请MDL也会被阻塞4、如果t是一个高频读写的表,则可能导致线程爆满2.如何解决?首先我们要解决长事务,事务不提交,就会一直占着 MDL 锁。把尝试无kill掉先原创 2021-07-30 15:37:36 · 314 阅读 · 0 评论 -
MySQL MDL锁
show processlist1、作用MySQL5.5 引入,用于解决或者保证DDL操作与DML操作之间的一致性所以MDL锁是在Server级别的锁2、对象可以是表锁,也可以是全局锁、库级别的锁、表空间级别的锁某些类型的MDL锁会从上往下一层层进行加锁。比如LOCK TABLE … WRITE这样的SQL语句,其首先会对GLOBAL级别加INTENTION_EXCLUSIVE锁,再对SCHEMA级别加INTENTION_EXCLUSIVE锁,最后对TABLE级别加SHARED_N.原创 2021-07-30 15:35:42 · 801 阅读 · 0 评论 -
MySQL auto-inc锁
1、官网介绍自增锁是一种特殊的表级别锁(table-level lock),专门针对事务插入AUTO_INCREMENT类型的列。最简单的情况,如果一个事务正在往表中插入记录,所有其他事务的插入必须等待,以便第一个事务插入的行,是连续的主键值。2、一个参数innodb_autoinc_lock_mode 默认1该参数始于5.1.22 为0时,表示采用之前MySQL 5.0版本的策略,即语句执行结束后才释放锁;(语句级别) 为1时: 普通insert语句,自增锁在申请之后就马上释放; 类似in原创 2021-07-30 15:34:49 · 1028 阅读 · 0 评论 -
InnoDB锁简介
开篇几个问题:1、MySQL和Innodb有哪些级别的锁?2、表锁和行锁的区别有哪些?从以下结果方面:加锁效率,加锁粒度,实现复杂度,占用空间,并发度、超时时间3、行锁加到什么对象上?唯一索引和非唯一索引加锁时有什么区别,如果没有索引呢?4、等值查询和范围查询加锁的区别,等值查询如果没有命中会怎么样?几条语句:show process list 线程执行状态 select * from performance_schema.data_locks。查看行锁和意向锁 字段描述 s...原创 2021-07-30 15:04:30 · 754 阅读 · 0 评论 -
不同环境MySQL数据库结构对照
问题:开发环境提测到测试环境,测试环境上线时,有哪些新增表和字段的情况,开发者往往会忘记提供SQL。这时候如果之前保留的SQL脚本丢失,那么就得重新写,但那些表和字段属于本次变更的范围内呢?可能忘记可能遗漏解决小技巧:场景:从开发环境到测试环境前提:拥有查询information_schema.COLUMNS的权限第一步:查询测试环境的所有表和字段信息select group_concat(concat('\'',TABLE_NAME,".",COLUMN_NAME,'\'')) fr原创 2021-03-30 15:39:11 · 355 阅读 · 0 评论 -
MySQL8.0锁
1、performance_schema.metadata_locks 查看元数据锁展示那些琐:已授予的锁(显示哪些会话拥有哪个当前元数据锁)。 已请求但尚未授予的锁(显示哪些会话正在等待哪些元数据锁)。 死锁检测器已杀死的锁定请求。 超时并且正在等待请求会话的锁定请求被丢弃的锁定请求开启和禁用:UPDATE performance_schema.setup_instrumentsSET ENABLED = 'YES', TIMED = 'YES'WHERE NAME = 'wai原创 2021-02-24 16:10:13 · 1346 阅读 · 0 评论 -
Mysql 自增字段
1、语法介绍2、自增锁3、为什么可能不连续4、几种自增的情况1、delete数据是否会导致自增值修改2、重启之后自增数据是否变化3、如果指定自增列的值,能不能正确插入原创 2021-02-22 20:31:13 · 305 阅读 · 0 评论 -
Mysql Online DDL
1、一个alter table语句的完整写法2、Mysql5.5之前,执行alter table的过程3、online DDL介绍4、Alter Table算法5、online DDL替代方案https://blog.youkuaiyun.com/finalkof1983/article/details/88355314原创 2021-02-22 18:39:45 · 177 阅读 · 0 评论 -
MySQL和Innodb锁简介
这里写自定义目录标题锁类型读锁、写锁锁范围全局锁、表锁、页锁、行锁、MDL锁全局锁使用场景使用方式全局锁表级锁(表锁和MDL锁)表锁:元数据锁(MDL锁)作用:分类行级锁两阶段锁加行锁的方法死锁和死锁检测锁类型读锁、写锁锁范围全局锁、表锁、页锁、行锁、MDL锁全局锁使用场景全库逻辑备份时,使用全局锁使用方式Flush tables with read lock (FTWRL)全局锁不但DML无法操作,DDL也无法操作表级锁(表锁和MDL锁)表锁:加锁语句: lock ta原创 2021-02-01 20:44:59 · 308 阅读 · 0 评论 -
MySQL中,一条update语句心路历程
除了和查询一样的流程以外,在执行器进行执行的时候,除了需要进行存储引擎的保存操作以外,还需要记录日志。redo log:1、一条更新语句执行时,会先写redolog 再更新内存,异步线程更新磁盘。2、redo log不断的写入在log buffer中,写完redo log该更新算是完成3、redo log顺序写磁盘,是物理日志,一旦出现crash-safe,使用redo log进行提交或回滚。4、用于实现事务的持久性bing log:1、bin log是MySQL server层原创 2021-01-29 17:43:56 · 310 阅读 · 0 评论 -
MySQL中,一条查询语句的心路历程
一、客户端与连接器建立连接二、查询缓存三、词法分析、语法分析、语句分析四、查询优化器(最关键部分)五、存储引擎和磁盘原创 2021-01-29 10:58:02 · 178 阅读 · 0 评论
分享