Mysql
文章平均质量分 92
Smallc0de
勤学如春起之苗,不见其增,日有所长;辍学如磨刀之石,不见其损,日有所亏。
展开
-
Mysqls深度讲解 – 锁
前言上一篇博客【Mysqls深度讲解 – 事务】详细说的了Mysql中的事务,以及多版本并发控制的实现方式,基本上多版本并发控制是为了提高数据库的并发效率而设置的。有了多版本并发控制的保证,Mysql在读数据的过程中就不需要一直对着某个资源进行加锁操作,依然可以获取数据保证事务正常进行。读数据可以使用多版本并发控制,但是写数据包括串行化 (Serializable)隔离级别就不能这么做了,这种情况下只能使用锁。因此锁依然是Mysql中必不可少的组成部分,本篇就详细讲一下Mysql中的锁。更多Mysql调优原创 2020-12-25 18:21:41 · 259 阅读 · 0 评论 -
Mysqls深度讲解 – 事务
本篇详细的讲解了什么是事务,以及Mysql中事物的操作开启、提交、回滚等等。然后针对隔离性做了一个详细的讲解,阐明了四种隔离级别的实现方法,以及特性优缺点。最后针对已提交读 (Read Commit)和可重复读 (Repeatable Read)引出Mysql中版本链的实现,以及ReadView的作用。原创 2020-12-23 17:08:25 · 331 阅读 · 1 评论 -
Mysql深度讲解InnoDB引擎与Index索引(四)
上几篇已经从理论上说明了索引能够对我们查询的效率起到比较大的帮助,以及一些基本的索引创建原则,那么有没有一个比较好的办法直观的比较两个索引的效率呢?当然是有的,它就是索引的选择性(Selectivity),指的是:不重复的索引值(也叫基数,Cardinality)与表记录数的比值,本篇就聊聊如何建一个高效的索引。原创 2020-12-22 17:59:58 · 393 阅读 · 0 评论 -
Mysql深度讲解 – 派生表
Mysql在查询语句中一般会使用自建表,这种自建表有临时表,派生表以及在之前的子查询优化的博客里面介绍的物化表。本篇就对遗漏的派生表做一个介绍,作为Mysql知识的补充。原创 2020-12-22 15:00:44 · 4152 阅读 · 0 评论 -
Mysql深度讲解 – explain关键字(二)
上篇对explain中的关键字table、id、select_type、type等四个字段做了详细的解释,本篇就把剩余的possible_keys、key、key_len、ref、rows、filtered、Extra几个字段说清楚他们的作用。原创 2020-12-22 11:27:37 · 381 阅读 · 0 评论 -
Mysql深度讲解 – explain关键字(一)
Mysql中给我们提供了explain关键字去分析一条sql执行的大概过程。比如工作中间常常会遇到执行效率很低的”慢sql”。有些sql语句一直执行的就很慢,有些sql只是偶发性的慢。所以有时候可能sql执行得慢并不是sql的问题,而是服务器资源被占满(比如表被锁,网络问题等等),无法获取执行sql的资源导致的慢,这时候其实还好。那么如果一个sql一直运行的效率比较低,那么就必须要用到explain关键字去分析sql,本篇就是要详细的说下explain关键字。原创 2020-12-21 17:25:52 · 353 阅读 · 1 评论 -
Mysql深度讲解 – 子查询优化
一般来说在正常的业务情况下大多数sql语句都会有子查询,一个表从另一个表里查询数据,本篇会通过几个例子列举这样的sql语句的优化思路。原创 2020-12-16 15:00:51 · 2415 阅读 · 1 评论 -
Mysql深度讲解 – Join语句
本篇主要讲解了Join的原理,嵌套链接,块嵌套连接是如何做的,以及如何消除外连接进行一个Join的优化。原创 2020-12-15 17:49:25 · 437 阅读 · 0 评论 -
Mysql深度讲解 - 查询优化器(二)
上一篇主要讲了查询优化器怎么用,以及查询优化的成本计算,那么这些成本数据是怎么统计呢?本篇将会继续对Mysql中查询优化器的数据统计做一个解析。希望通过笔者的帖子大家能够掌握查询优化器是如何使用的,以及各种表中各种属性是如何影响到查询优化器进行成本操作的,以及如何选用的查询方式。原创 2020-12-15 11:45:13 · 519 阅读 · 0 评论 -
Mysql深度讲解 - 查询优化器(一)
本篇博客介绍了Mysql如何开启查询优化器,如何分析查询优化器的日志,以及Mysql对于查询语句是如何进行成本估算的,并且实际做了一个例子演示成本估算。原创 2020-12-14 16:26:34 · 3120 阅读 · 2 评论 -
Mysql优化-深度讲解系列目录
前言笔者相信大多数同学都清楚Mysql的索引(Index)对查找数据的速度提升是有很大帮助的,了解的更深入的一些的同学可能也知道Mysql的索引模型是B+树。但是笔者发现网上对于这些知识非常的琐碎,不利于新入门的同学理解Mysql 索引底层的运作机制。本篇博客就是要从InnoDB开始一步一步的推导到Index的原理,当然这些都是笔者个人的理解和学到的内容,如果有错误的地方,欢迎大家指正,互相进步。【Mysql深度讲解InnoDB引擎与Index索引(一)】主要内容:InnoDB数据加载的原理,Inno原创 2020-12-11 15:41:27 · 726 阅读 · 0 评论 -
Mysql深度讲解InnoDB引擎与Index索引(三)
本篇详细说了Mysql中索引的底层原理,以及根据原理延伸出来的索引适用情况,其实只要把握一个原则即可,那就是最左原则,因为只有最左边的值确定下来了,才能够定位并减少查询字数的范围,进而我们创建的索引才是有价值的。因而引出了一系列的sql语句匹配索引的条件,比如like的匹配方式,exist的匹配方式,包括大于小于的条件语句组合,甚至包括order等等。但是本篇博客基本上是从理论上说明了索引的使用方式,创建方式,以及索引是如何帮助我们优化查询的。原创 2020-12-11 11:16:22 · 372 阅读 · 0 评论 -
Mysql深度讲解InnoDB引擎与Index索引(二)
上一篇已经详细说了InnoDB引擎的结构以及存储数据的模型,结束于Dynamic处理行溢出方式。那么本篇正式从零开始详细的说下Index是如何产生的。以及为什么说InnoDB中的Index用的是B+树数据结构。原创 2020-12-10 16:35:35 · 609 阅读 · 0 评论 -
Mysql深度讲解InnoDB引擎与Index索引(一)
笔者相信大多数同学都清楚Mysql的索引(Index)对查找数据的速度提升是有很大帮助的,了解的更深入的一些的同学可能也知道Mysql的索引模型是B+树。但是笔者发现网上对于这些知识非常的琐碎,不利于新入门的同学理解Mysql 索引底层的运作机制。本篇博客就是要从InnoDB开始一步一步的推导到Index的原理,当然这些都是笔者个人的理解和学到的内容,如果有错误的地方,欢迎大家指正,互相进步。原创 2020-12-09 15:20:36 · 709 阅读 · 0 评论