![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Mysql
古树清风
积累些东西吧~~~
展开
-
Mysql知识延展(七)MVCC多版本并发控制
MVCC简述MVCC(Mutil-Version Concurrency Control),就是多版本并发控制。MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库读写的并发访问。在Mysql的InnoDB引擎中就是指在已提交读(READ COMMITTD)和可重复读(REPEATABLE READ)这两种隔离级别下的事务对于SELECT操作会访问版本链中的记录的过程。这就使得...原创 2019-11-22 16:34:20 · 229 阅读 · 0 评论 -
Mysql知识延展(六)Undo Log日志
前言Undo log是InnoDB MVCC事务特性的重要组成部分,同时可以提供数据回滚。当我们对记录做了变更操作时就会产生undo记录,Undo记录默认被记录到系统表空间(ibdata)中,但从5.6开始,也可以使用独立的Undo 表空间。Undo记录中存储的是老版本数据,当一个旧的事务需要读取数据时,为了能读取到老版本的数据,需要顺着undo链找到满足其可见性的记录。当版本链很长时,通常可...转载 2019-11-22 11:10:38 · 401 阅读 · 1 评论 -
Mysql知识延展(四)InnoDB内存结构及特性
InnoDB特性介绍MySQL区别于其他数据库的最为重要的特点就是其插件式的表存储引擎。而在众多存储引擎中,InnoDB是最为常用的存储引擎。从MySQL5.5.8版本开始,InnoDB存储引擎是默认的存储引擎。InnoDB存储引擎支持事务,其设计目标主要面向在线事务处理(OLTP)的应用。其特点是行锁设计、支持外键,并支持非锁定读,即默认读操作不会产生锁。 InnoDB通过使用多版本并发...原创 2019-11-21 15:39:18 · 375 阅读 · 0 评论 -
Mysql知识延展(五)Redo Log日志
前言InnoDB 有两块非常重要的日志,一个是undo log,它用来保证事务的原子性以及InnoDB的MVCC,另外一个就是是redo log,它用来保证事务的持久性。InnoDB记录了对数据文件的物理更改,并保证总是日志先行,也就是所谓的WAL,即在持久化数据文件前,保证之前的redo日志已经写到磁盘。LSN(log sequence number) 用于记录日志序号,它是一个不断递增的...转载 2019-11-21 15:33:18 · 351 阅读 · 0 评论 -
Mysql笔记(五)事务
事务介绍在MySQL中的事务是由存储引擎实现的,而且支持事务的存储引擎不多,我们主要讲解InnoDB存储引擎中的事务。事务处理可以用来维护数据库的完整性,保证成批的 SQL 语句要么全部执行,要么全部不执行。事务用来管理DDL、DML、DCL 操作,比如 insert,update,delete 语句,默认是自动提交的。事务四大特性(ACID)原子性(Atomicity)一个事务(t...原创 2019-10-30 13:51:50 · 102 阅读 · 0 评论 -
Mysql知识延展(三)索引条件下推
索引条件下推(ICP)ICP(index condition pushdown)是mysql利用索引(二级索引)元组和筛选字段在索引中的where条件从表中提取数据记录的一种优化操作。ICP的思想是:存储引擎在访问索引的时候检查筛选字段在索引中的where条件(pushed index condition,推送的索引条件),如果索引元组中的数据不满足推送的索引条件,那么就过滤掉该条数据记录。I...原创 2019-10-30 09:56:19 · 608 阅读 · 0 评论 -
Mysql知识延展(二)回表查询和索引覆盖
回表查询InnoDB有两大类索引:聚集索引(clustered index)InnoDB聚集索引的叶子节点存储行记录,因此, InnoDB必须要有,且只有一个聚集索引:如果表定义了主键(PRIMARY KEY),则PK就是聚集索引如果表没有定义PK,则第一个唯一索引(UNIQUE KEY)列是聚集索引如果表也没有定义UK,则InnoDB会自动创建一个隐藏的row-id作为聚集索引...原创 2019-10-24 15:00:35 · 244 阅读 · 0 评论 -
Mysql知识延展(一)Explain分析
Explain简介本文主要讲述如何通过 explain命令获取 select 语句的执行计划,通过 explain 我们可以知道以下信息:表的读取顺序,数据读取操作的类型,哪些索引可以使用,哪些索引实际使用了,表之间的引用,每张表有多少行被优化器查询等信息。使用的表结构:DROP TABLE IF EXISTS `actor`;CREATE TABLE `actor` ( `id` i...转载 2019-10-22 17:01:32 · 227 阅读 · 0 评论 -
Mysql笔记(四)锁机制
Mysql锁介绍Mysql锁分类Mysql表级锁表级锁介绍MySQL的表级锁有两种表锁元数据锁(Meta Data Lock,MDL)MySQL实现的表级锁定的争用状态变量查询:mysql> show status like 'table_locks%';+-----------------------+--------+| Variable_name ...原创 2019-10-21 14:18:42 · 146 阅读 · 0 评论 -
Mysql笔记(三)索引使用场景及索引失效分析
索引使用场景哪些情况需要创建索引主键自动建立主键唯一索引频繁作为where查询条件的字段应该创建索引多表关联查询中,关联on两边的字段应该创建索引查询中排序的字段,应该创建有顺序的索引B+Tree利用组合索引完成索引覆盖避免回表统计或分组字段,应该创建索引哪些情况不需要创建索引表记录太少,因为索引也是有存储开销的频繁更新,因为索引也会更新维护查询字段使用频率不高为什...原创 2019-10-16 15:20:10 · 529 阅读 · 0 评论 -
Using temporary与Using filesort
通过explain查看sql的执行计划时,Extra字段的值往往会看到Using where; Using index; Using temporary; Using filesort,其中此次重点关注Using temporary; Using filesort。Using temporaryUsing temporary表示由于排序没有走索引、使用union、子查询连接查询、使用某些视图等...转载 2019-10-15 10:10:05 · 514 阅读 · 0 评论 -
Mysql笔记(二)索引介绍
索引介绍索引是什么官方介绍索引是帮助MySQL高效获取数据的数据结构。更通俗的说,数据库索引好比是一本书前面的目录,能加快数据库的查询速度。索引的优势和劣势优势:可以提高数据检索的效率,降低数据库的IO成本,类似于书的目录。 – 检索通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗。 --排序被索引的列会自动进行排序,包括【单列索引】和【组合索引】,只是组...原创 2019-09-30 15:35:19 · 178 阅读 · 0 评论 -
Mysql笔记(一)架构介绍
逻辑架构逻辑架构图连接器(Connectors)系统管理和控制工具(Management Serveices & Utilities)连接池(Connection Pool)SQL Layer MySQL业务层SQL接口(SQL Interface)接收SQL DML DDL语句解析器(Parser)例如:select * from t1词法分析 分词...原创 2019-09-29 16:07:12 · 224 阅读 · 0 评论