本文以 MySQL 数据库InnoDB引擎为例,为大家分析InnoDB数据库引擎对默认的隔离级别可重复读(RR)的具体实现。
分类:
数据库 时间:
2020-02-10 19:43:40
阅读次数:
102
前言 InnoDB 通过 MVCC 和 NEXT-KEY Locks,解决了在可重复读的事务隔离级别下出现幻读的问题。MVCC 我先挖个坑,日后再细讲,这篇文章我们主要来谈谈那些可爱的锁。 什么是幻读? 幻读是在可重复读的事务隔离级别下会出现的一种问题,简单来说,可重复读保证了当前事务不会读取到其他 ...
分类:
数据库 时间:
2020-02-09 22:18:49
阅读次数:
100
MySQL的基本架构: MySQL大致可以分为Server层和存储引擎层两部分 Server层包括:连接器,分析器,优化器,执行器。 存储引擎架构模式是插件式的,支持InnoDB,MyISAM,Memory等。可以使用show table status查看表的相关信息。 InnoDB引擎: MySQ ...
分类:
数据库 时间:
2020-02-09 16:58:58
阅读次数:
103
1. 什么是索引? 索引是一种数据结构,可以帮助我们快速的进行数据的查找. 2. 索引是个什么样的数据结构呢? 索引的数据结构和具体存储引擎的实现有关, 在MySQL中使用较多的索引有Hash索引,B+树索引等,而我们经常使用的InnoDB存储引擎的默认索引实现为:B+树索引. 3. Hash索引和 ...
分类:
其他好文 时间:
2020-02-09 11:34:39
阅读次数:
72
经过了 MyBatis 基本增删改查的学习,而在实际的项目中,我们往往会接触到多表的操作,什么是多表呢, 在实际生活中,每个实体之间往往是存在关系的,而我们的项目却是要依赖数据库将这些实体之间的关系串联起来,从而实现我们的业务,所以这部分,我们着重讲解如何使用 MyBatis 框架处理多张数据表之间... ...
分类:
其他好文 时间:
2020-02-09 11:30:22
阅读次数:
90
谈到服务器性能,可能第一个从脑中蹦出来的是:查询速度?这确实是我们最常接触的方面,但性能其实还包括例如CPU利用率、可扩展性等很多方面。通过总结发现,不管修改的是哪一方面,最终都在影响一个量:时间。因此不妨将性能定义为:完成任务所需时间的度量(性能即响应时间)。那什么是优化呢?如果认为优化是降低CP ...
分类:
其他好文 时间:
2020-02-09 11:23:02
阅读次数:
72
原文:https://www.jb51.net/article/139113.htm MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁;BDB存储引擎采用的是页面锁,但也支持表级锁;InnoDB存储引擎既支持行级锁,也 ...
分类:
数据库 时间:
2020-02-08 09:59:13
阅读次数:
73
首先下载,添加环境变量path登陆时MySQL8.0报错Can't connect to MySQL server on 'localhost' ,因为服务并没有启动。主要参照以下两个博客 https://www.cnblogs.com/telwanggs/p/11162062.html 原文地址 ...
分类:
数据库 时间:
2020-02-07 12:35:19
阅读次数:
214
经常有同学问我,我的一个SQL语句使用了索引,为什么还是会进入到慢查询之中呢?今天我们就从这个问题开始来聊一聊索引和慢查询。 另外插入一个题外话,个人认为团队要合理的使用ORM,可以参考 ORM的权衡和抉择。合理利用的是ORM在面向对象和写操作方面的优势,避免联合查询上可能产生的坑(当然如果你的Li ...
分类:
其他好文 时间:
2020-02-05 11:36:15
阅读次数:
68
执行器和 InnoDB 引擎在执行这个简单的 update 语句时的内部流程。 1、执行器先找引擎取 ID=2 这一行。ID 是主键,引擎直接用树搜索找到这一行。如果 ID=2 这一行所在的数据页本来就在内存中,就直接返回给执行器;否则,需要先从磁盘读入内存,然后再返回。 2、执行器拿到引擎给的行数 ...
分类:
数据库 时间:
2020-02-03 22:51:52
阅读次数:
161