MySQL进阶系列
文章平均质量分 89
MySQL进阶相关文章 ,分享工作2年需要知道的mysql知识,掌握高级开发应该有的mysql技能
数据库对比:https://db-engines.com/en/ranking
纪先生笔记
这个作者很懒,什么都没留下…
展开
-
MySQL进阶系列:你需要了解的几种MySQL日志
MySQL中有多种日志来保证实现其各种功能,我们最常见或者常听说的是Binlog(二进制日志),Redo Log(重做日志),Undo Log(回滚日志)。其实还有Relay Log(中继日志) ,General Query Log(一般查询日志),Slow Query Log(慢查询日志),Error Log(错误日志),DDL Log(DDL 日志)等。二进...原创 2022-02-21 16:50:00 · 583 阅读 · 0 评论 -
MySQL进阶系列:一条sql是怎么执行的
本文是在存储引擎是InnoDB的前提下mysql中的针对表的操作可以分为增删改查四种操作,也就是常说的crud大法,根据类型分为DML(增删改)和DQL(查);今天就说下插入和查询的语句时如何在mysql中执行的。不管是DML还是DQL都是要经过连接器,缓存,分析器,优化器,执行器调用存储引擎的API。在前四个阶段都是一样的流程,具体的可以参考 mysql基础架构篇,文章中有详细简介各个...原创 2022-02-11 12:28:00 · 413 阅读 · 0 评论 -
MySQL进阶系列:多版本并发控制- MVCC
mysql是目前互联网中用的最广泛的关系型数据库,InnoDB是mysql默认的存储引擎也是使用最多的存储引擎,能够满足大多数的业务需求,其中高并发的优点就是通过mvcc实现的。这篇文章就来介绍下mvcc是如何支持并发的。多版本并发控制MVCC 全称Multi-Version Concurrency Control,MVCC是一种通过增加版本冗余数据来实现并发控制的方法,一般在数据库管理系...原创 2022-01-17 10:04:00 · 633 阅读 · 0 评论 -
MySQL进阶系列:事务及事务隔离级别
事务就是现实中抽象出来一种逻辑操作,要么都执行,要么都不执行,不能存在部分执行的情况原创 2021-12-26 17:06:00 · 247 阅读 · 0 评论 -
pt-query-digest 慢查询分析
pt-query-digest一,安装分析MySQL开启慢查询日志(开启周期几天或者几周,根据项目而定)慢查询周期结束之后安装 pt-query-digest(百度)直接分析慢查询日志:pt-query-digest slow.log > slow_report.log二,分析慢查询日志(共20天)1. 总日志# 85.8s user time, 990ms sy...原创 2021-05-24 10:38:00 · 199 阅读 · 0 评论 -
pt-online-schema-change 大数据表结构修改
使用场景: 在线修改大数据量表结构(ALTER tables without locking them)文档参考:https://www.percona.com/doc/percona-toolkit/LATEST/pt-online-schema-change.html好处:降低主从延时的风险可以限速、限资源,避免操作时MySQL负载过高建议:在业务低峰期做,将影响降到最低直接...原创 2021-05-24 10:34:00 · 185 阅读 · 0 评论 -
一文了解mysql基础架构
如果能够清楚知道的架构图以及各个组件之间的关联,会有助于深入理解mysql,如下是其的架构图图中可以看出mysql分为service层和存储引擎层:service层包含了mysql大多数核心功能,除了图中标注的连接器,查询缓存,分析器,优化器,执行器,还有所有的内置函数(日期,时间,数学和加密函数),所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。存储引擎层负责mysql中...原创 2021-07-05 19:19:00 · 86 阅读 · 0 评论 -
mysql进阶系列:mysql的存储引擎有什么区别,该怎么选择
本文mysql实验版本 : 5.7.21 基础架构篇了解到执行器执行这个执行计划,通过调用存储引擎的API来操作数据。mysql提供了一系列存储引擎的API,所有的存储引擎都要符合API要求,因此可以实现这种插件式的存储引擎,可以根据不同的需求选择合适的存储引擎(就像握推杠铃一样,可以按需选择不同大小的杠铃片,嗯对的)。存储引擎是针对表的而不是库,对于同一个库不同的表可以使用不同的存储...原创 2021-07-12 10:46:00 · 110 阅读 · 0 评论 -
mysql进阶系列:表设计如何更好的选择数据类型
日常工作中我们会接触到不同业务,同样也会设计不同的表,但是你有真正考虑的mysql支持的那些数据类型吗?知道如何根据不同的需求选择最合适或者正确的类型吗。存储字符串类型只知道选择varchar , 是否知道字符串还有char, text, blob 。存储数字类型只知道选择 int,float,double,是否知道还有tinyint,smallint 等。看完这篇文章相信你在以后的表设计...原创 2021-07-26 10:54:00 · 149 阅读 · 0 评论 -
MySQL进阶系列:数据库设计中的范式究竟该如何使用
“这篇文章主要为了说明规矩要遵守,但是也别这么死板,要知道因场景不同而变化。了解各自的优缺点,在不同业务中根据需求选择使用。”我们在项目上进行数据库设计的时候要求遵守三范式,为什么会约束三范式呢:为了减少数据冗余。回忆下是哪三范式:所有属性具有原子性,列不可分割。例如家庭地址(xx省xx市xx地址),家庭地址作为字段就是非原子的,可以拆分成字段省份,城市,地址。在第一范式...原创 2021-08-16 10:00:00 · 120 阅读 · 0 评论 -
MySQL进阶系列:一文详解explain
explain有何用处呢: 为了知道优化SQL语句的执行,需要查看SQL语句的具体执行过程,以加快SQL语句的执行效率。 可以使用explain+SQL语句来模拟优化器执行SQL查询语句,从而知道mysql是如何处理sql语句的。通过查看执行计划了解执行器是否按照我们想的那样处理SQL。 官网地址: https://dev.mysql.com/doc/refman/5....原创 2021-09-15 13:59:00 · 163 阅读 · 0 评论 -
为什么mysql使用B+树作为索引的数据结构
索引提高查询效率,就像我们看的书,想要直接翻到某一章,是不是不用一页一页的翻,只需要看下目录,根据目录找到其所在的页数即可。在计算机中我们需要一种数据结构来存储这个目录,常见数据结构有哈希表,二叉查找树,二叉平衡树(AVL),红黑树,那为什么Innodb和MyISAM选择b+树呢。哈希表哈希表就是一个数组+链表,用下标0,1,2,3..... 表示其数据所在的位置。如果想要在哈希表中存放...原创 2021-10-14 17:26:00 · 153 阅读 · 0 评论 -
你需要知道的一些索引基础知识
“对于高级开发,我们经常要编写一些复杂的sql,那么防止写出低效sql,我们有必要了解一些索引的基础知识。通过这些基础知识我们可以写出更高效的sql。”01 索引的优点大大减少服务器需要扫描的数据量,也就是IO量帮助服务器避免排序和临时表(尽量避免文件排序,而是使用索引排序)将随机IO变成顺序IO02 索引的用处快速查找匹配where子句中的行如果可以在多个索引中选择,my...原创 2021-10-25 16:00:00 · 99 阅读 · 0 评论 -
MySQL进阶系列: 怎么创建更合适的索引
“不要当库里的数据较多的时候才能知道索引的重要性,更不要当库里的数据更多的时候才能知道合适的索引重要性。本文介绍下怎么创建高效且合适的索引”1. 当使用索引列进行查询的时候尽量不要使用表达式,把计算放到业务层而不是数据库层如下图 两个sql的结果是一样的,但是两个sql的执行计划是不一样,在type中index的效率远不如const where条件中 actor_id+4 表达式影响了执行...原创 2021-11-12 16:26:00 · 1199 阅读 · 0 评论 -
MySQL进阶系列:join连接的原理-3种算法
“我们经常在多表查询的时候使用join 去连接多个表,其实join的效率比不好还是应该尽量避免使用的,其本质就是各个表之间循环匹配的,MySQL中只支持一种join算法Nested-Loop Join(循环嵌套连接),但是其有多种变种的算法提高join的执行效率。”1. Simple Nested-Loop Join(SNL,简单嵌套循环连接)Simple Nested-Loop join...原创 2021-11-22 17:09:00 · 793 阅读 · 0 评论 -
mysql进阶系列:mysql中MyISAM和InnoDB有什么区别
mysql 版本5.7+本片文章详细列举下MyISAM和InnoDB的区别1. mysql中MyISAM和InnoDB有什么区别1. 存储结构MyISAM:每张表被存放在三个文件:frm-表格定义、MYD(MYData)-数据文件、MYI(MYIndex)-索引文件。Innodb:所有的表都保存在同一个数据文件中(也可能是多个文件,或者是独立的表空间文件),InnoDB表的大小只受限于...原创 2021-07-20 17:19:00 · 84 阅读 · 0 评论