MySQL 由于MDL读锁select被阻塞
thread 1、begin;更新表;没有提交,也没有回滚操作thread2、create index 在这个表上这时候客户端超时中断再次连接会话查询此表被阻塞,无法查询thread3、查询 select * from test;root@localhost : yaochong 17:08:27> select id,user,host,d
MySQL8.0-新特性汇总
大量使用 class 重构代码明面上: 提高了代码安全性、可维护性,优化继承关系,提高可读性小算盘: 第三方的开源分支受重创,难以跟上8.0的代码结构DDL重做原子性秒加列官方文档:https://dev.mysql.com/doc/refman/8.0/en/atomic-ddl.html MySQL · 源码分析 · 原子DDL的实现过程https://yq.aliyun.com/articl
MySQL8.0新特性-临时表的改善
官方文档:https://dev.mysql.com/doc/refman/8.0/en/internal-temporary-tables.html 8.0.13 允许使用temptable engine(新引擎)、memory engine的临时表,此前5.6 为myisam,5.7为Innodb 在某些情况下,MySQL在处理语句时会创建内部临时表。都是server自动生成,用户无
Lost connection to MySQL server at 'reading authorization packet'
一般都是夸区域网络导致的,比较头疼
ibdata1共享表空间文件一直增加的一个案例
看了实例innodb_file_per_table开启的 ibdata1使用有323G ,py_innodb_page_info.py可以研究研究
show profiles
set profiling = 1;--执行SQLshow profiles;show profile ALL for query query_id;今天看到show processlist; 其中starting步骤消耗0.1s,但是没有找到问题所在,记录下来,后面如果遇到继续分析。
freeing items
show processlist 查看到大量的 freeing items状态会话查看官方文档,官方文档在8.14.2 General Thread States章节给出了线程状态的解释说明命令已经在执行正在进行清理 更新日志索引等-------------------------+ | 0 | 0.000088 | SET PROFI
应用连接超时排查DB MySQL
应用超时排查一般思路
MySQL server has gone away
【目前排查情况】 2006 MySQL server has gone away这个错误提示,一般发生在以下几种情况供您参考: 1.MySQL进程挂了 2.连接到达wait timeout值时失效,但仍有sql发送过来 3.SQL文本过大,超过了max_allowed_packet 4.SQL被意外终止 建议,应用侧设置好应用重连机制,当发生超时断开时,重连即可。业务中如有长SQL可以适当调整ma
lower_case_table_names
如果设置为0,表名将按指定方式存储,并且比较区分大小写。如果设置为1,表名称以小写形式存储在磁盘上,比较不区分大小写。要设置为1,不区分表名大小写mysql>show variables like 'lower_case_table_names';
mysql活跃连接打高的案例
【问题现象】 MySQL 今天早上4:15左右发生什么事了,应用请求数据库看连接超时【问题小结】 该实例在04:14:40时active_session活跃会话突然增加从4增加到957左右,虽然没有达到max_connections阈值16000,但是导致在04:15:09秒cpu使用率达到100%,短时间内影响到了新的会话session登录,建议排查会话突然增加的原因和优化明显的慢sql这里面就
MySQL 死锁和锁等待
错误码:1205 Lock wat timeout exceeded和错误码:1213 Deadlock found when trying to get lock一个是锁超时,一个是死锁,两个锁等待是有区别
haproxy和lvs
四层和七层负载均衡的区别 四层 所谓的四层就是ISO参考模型中的第四层。四层负载均衡也称为四层交换机,它主要是 通过分析IP层及TCP/UDP层的流量实现的基于IP加端口的负载均衡。常见的基于四层的负载均衡器有LVS、F5等。 以常见的TCP应用为例,负载均衡器在接收到第一个来自客户端的SYN请求时,会通过设定的负载均衡算法选择一个最佳的后端服务器,同时将报文中目标IP地址修改为后端服务
MySQL8.0新特性-CTE语法支持
新无锁并发,可扩展的wal设计
MySQL 8.0新特性-倒叙索引 desc index
官方文档地址:https://dev.mysql.com/doc/refman/8.0/en/descending-indexes.htmlmysql>explain select * from test_backup.paralleltest order by id desc +----+----------
MySQL 8.0新特性-并行查询innodb_parallel_read_threads
A Road to Parallel Query Execution is Wide Open!
MySQL 8.0新特性-不可见索引
官方文档:https://dev.mysql.com/doc/refman/8.0/en/invisible-indexes.htmlMySQL 8.0 invisible index学习MySQL支持不可见索引,即优化器不会使用该索引。 不可见索引特性不可以用于主键。默认索引是可见的。可以在create table、create index、alter table操作中使用关键字visible、
MySQL truncate原理
https://dba.stackexchange.com/questions/147600/mysql-truncate-table-blocks-queries-in-other-databaseshttps://dev.mysql.com/doc/refman/8.0/en/truncate-table.html
Error on opening a connection to slave1:33061 on local port: 33061
单主模式,主启动start replication报错,error log信息如下。2020-02-16T09:09:33.116741+08:00 2 [Note] Plugin group_replication reported: 'Group communication SSL configu
MySQL double write
double write技术的引入就是为了提高数据写入的可靠性。当写入部分数据的时候,比如:512bytes。为什么Oracle没有解决这个问题,而MySQL通过double write去解决这个事情呢。 doublewrite默认存放在ibdata1中共享表空间里,默认大小2M,写之前将脏页写入到innodb buffer中的doublewrite buffer(2M)中,将2M的bu