![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
MySQL
pikaxiao
从现在起,我要努力更新。。。。(* ̄︶ ̄)
展开
-
一不小心,间隙锁引发的报警现场
摘要今天来分享一下我在线上环境遇到的有关MySQL间隙锁的死锁问题。本文将讲述从发现问题到解决问题的全过程,并给出一些个人建议,其中使用的数据将做脱敏处理,但不影响食用口感。发现问题运维同学发现有大量的MySQL死锁日志输出,如果你的系统有对MySQL进行死锁监控,可会在图形界面上很直观的发现这个问题。你会发现日志里有大量下面这样的log输出:Deadlock found when trying to get lock; try restarting transaction定位问题既然知道了原创 2020-05-10 16:38:27 · 1076 阅读 · 0 评论 -
MySQL最佳性能实践
文章目录摘要1 InnoDB启动配置1.1 系统表空间数据文件配置1.2 重做日志文件配置1.3 页面大小配置1.4 内存配置2 MyISAM启动配置2.1 bulk_insert_buffer_size2.2 delay_key_write=ALL2.3 myisam_max_sort_file_size2.4 myisam_recover_options=mode2.5 myisam_sort...原创 2020-04-09 23:01:42 · 386 阅读 · 0 评论 -
走近InnoDB内存结构
文章目录摘要整体结构内存结构Buffer PoolLRUBuffer Pool ListBuffer Pool配置flushChange BufferLog BufferAdaptive Hash Index参考摘要本文基于MySQL5.7为基础,讨论InnoDB内存结构的相关内容。其中涉及到Buffer Pool、Change Buffer、Adaptive Hash Index和Log B...原创 2020-04-06 16:10:47 · 2153 阅读 · 1 评论 -
一文带你了解关系数据库设计要领
文章目录摘要实体-关系模型(E-R)关系表设计Boyce-Codd范式第三范式存储引擎的选择何如选择?字符集选择如何选择?数据类型的选择选择原则固定长度和可变长度char 与 varchartext 和 blob浮点数和定点数整数索引设计设计原则示例参考摘要本文讨论关系数据库设计相关的一些内容,涉及关系模型,表结构设计等内容,以学生选修课程讲述设计过程,在尽量讲清楚设计要领的前提下,简化设计内...原创 2020-04-04 02:35:13 · 2565 阅读 · 0 评论 -
更新SQL语句到底时如何执行的
文章目录摘要Redo Log 和 BinlogRedo Log(重做日志)Binlog(归档日志)两份日志更新流程参考摘要本文基于MySQL5.7为基础,讨论与数据库更新数据流程相关的一些内容。关于查询流程的内容,可以参考这一篇《查询SQL语句到底是如何执行的》。Redo Log 和 Binlog其实,更新流程和查询流程都一样,重客户端到存储引擎,到要经历下图中的流程。具体各个组件的作用在...原创 2020-04-01 01:08:24 · 568 阅读 · 0 评论 -
MySQL事务控制和锁机制
摘要本文基于MySQL5.7为基础,讨论与数据库事务和锁的相关内容。锁机制根据加锁的范围,MySQL里面的锁可以分成全局锁、表级锁和行锁三类。全局锁全局锁能够对整个库实例进行加锁。加锁的语法:FLUSH TABLES WITH READ LOCK;解锁的语法:UNLOCK TABLES;全局锁的典型使用场景是,做全库逻辑备份。应用全局锁做逻辑备份有以下问题:如果你在主...原创 2020-03-30 18:03:39 · 1592 阅读 · 0 评论 -
B+Tree索引的背后
摘要本文基于MySQL5.7为基础,讨论与数据库索引相关的一些内容。MySQL是一个支持多存储引擎插件的数据库,各种引擎已插件的方式接入,而各种存储引擎对索引的支持各不相同。本文只讨论InnoDB的B+Tree索引,因为这是MySQL引用最广泛的索引,至于哈希索引和全文索引本文暂不讨论。聚集索引和二级索引每个InnoDB表都有一个特殊的索引,称为聚集索引(有的翻译为聚簇索引) ,用于存储行数...原创 2020-03-20 17:58:26 · 1985 阅读 · 1 评论 -
查询SQL语句到底是如何执行的
一个SQL语句到底是如何执行的想必大家对于SQL语句或多或少都有些了解,但你知道SQL语句在MySQL上是怎么运行的么,它到底做了哪些操作呢?SQL执行过程示意图连接器连接器,顾名思义,作用就是与MySQL服务器建立连接用的。连接器负责跟客户端建立连接、维持和管理连接。客户端如果太长时间没动静,连接器就会自动将它断开。这个时间是由参数wait_timeout控制的,默认值是8小时。曾经...原创 2020-03-16 17:46:20 · 3084 阅读 · 1 评论 -
SQL优化之Change语句
INSERT优化插入行所需的时间由以下因素决定,其中数字表示近似比例:连接:(3)向服务器发送查询:(2)解析查询:(2)插入行:(1×行大小)插入索引:(1×索引数)断开连接:(1)您可以使用以下方法来加快插入速度:如果要同时从同一客户端插入许多行,请使用INSERT具有多个VALUES列表的语句一次插入几行。这比使用单独的单行INSERT 语句要快得多(某些情况下要快...原创 2020-03-16 14:31:16 · 2869 阅读 · 0 评论 -
SQL优化之Select语句
WHERE子句优化删除不必要的括号。 ((a AND b) AND c OR (((a AND b) AND (c AND d))))-> (a AND b AND c) OR (a AND b AND c AND d)常量折叠。 (a<b AND b=c) AND a=5-> b>5 AND b=c AND a=5常量条件消除。 (...原创 2020-03-10 16:41:24 · 1874 阅读 · 0 评论 -
MySQL之安装
安装前,我们可以检测系统是否自带安装 MySQLrpm -qa | grep mysql如果你系统有安装,那可以选择进行卸载:yum remove mysql-libs-5.1.71-1.el6.x86_64官网下载mysql二进制文件,匹配自己的linux版本拷贝文件到/usr/local/ cp mysql-8.0.13-linux-glibc2.1...原创 2017-04-30 12:46:42 · 641 阅读 · 1 评论