数据库

提供优质的关于数据库系列文章,包括数据库核心理论知识,数据库优化以及数据库的运维

彻底搞懂 MySQL 的 explain

chenssy阅读(2732)评论(0)赞(4)

explain关键字可以模拟MySQL优化器执行SQL语句,可以很好的分析SQL语句或表结构的性能瓶颈。 explain包含的字段 id //select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序 select...

MySQL技术内幕

chenssy阅读(8889)评论(0)赞(13)

【MySQL技术内幕】01-MySQL体系结构和存储引擎 【MySQL技术内幕】02-InnoDB体系架构 【MySQL技术内幕】03-Checkpoint技术 【MySQL技术内幕】04-Master Thread工作方式 【MySQL技...

【MySQL技术内幕】20-Named File Formats机制

chenssy阅读(905)评论(0)赞(0)

随着 InnoDB存储引擎的发展,新的页数据结构有时用来支持新的功能特性。比如前面提到的 InnoDB1.0x版本提供了新的页数据结构来支持表压缩功能,完全的溢出( Off page)大变长字符类型字段的存储。这些新的页数据结构和之前版本的...

【MySQL技术内幕】21-约束

chenssy阅读(890)评论(0)赞(0)

1、数据完整性 关系型数据库系统和文件系统的一个不同点是,关系数据库本身能保证存储数据的完整性,不需要应用程序的控制,而文件系统一般需要在程序端进行控制。当前几乎所有的关系型数据库都提供了约束( constraint)机制,该机制提供了一条...

【MySQL技术内幕】15-InnoDB存储引擎文件

chenssy阅读(1291)评论(0)赞(1)

之前介绍的文件都是 MySQL数据库本身的文件,和存储引擎无关。除了这些文件外,每个表存储引擎还有其自己独有的文件。本节将具体介绍与 InnoDB存储引擎密切相关的文件,这些文件包括重做日志文件、表空间文件。 1、表空间文件 InnoDB采...

【MySQL技术内幕】16-索引组织表

chenssy阅读(1035)评论(0)赞(0)

在 InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表( index organized table)。在 InnoDB存储引擎表中,每张表都有个主键( Primary Key),如果在创建表时没有显式地定...

【MySQL技术内幕】22-视图

chenssy阅读(955)评论(0)赞(0)

在 MySQL数据库中,视图(view)是一个命名的虚表,它由一个SQL查询来定义,可以当做表使用。与持久表( permanent table)不同的是,视图中的数据没有实际的物理存储。 1、视图的作用 视图在数据库中发挥着重要的作用。视图...

【MySQL技术内幕】23-分区表

chenssy阅读(959)评论(0)赞(0)

1、分区概述 分区功能并不是在存储引擎层完成的,因此不是只有 InnoDB存储引擎支持分区,常见的存储引擎 MyISAM、NDB等都支持。但也并不是所有的存储引擎都支持,如CSV、 FEDORATED、 MERGE等就不支持。在使用分区功能...

【MySQL技术内幕】45-认识事务

chenssy阅读(1069)评论(0)赞(0)

1、概述 事务可由一条非常简单的SQL语句组成,也可以由一组复杂的SQL语句组成。 事务是访问并更新数据库中各种数据项的一个程序执行单元。在事务中的操作,要么都做修改,要么都不做,这就是事务的目的,也是事务模型区别与文件系统的重要特征之一。...

【MySQL技术内幕】24-InnoDB存储引擎索引概述

chenssy阅读(1149)评论(0)赞(1)

InnoDB存储引擎支持以下几种常见的索引: B+树索引 全文索引 哈希索引 前面已经提到过, InnoDB存储引擎支持的哈希索引是自适应的, InnoDB存储引擎会根据表的使用情况自动为表生成哈希索引,不能人为干预是否在一张表中生成哈希索...

【MySQL技术内幕】25-B+树的操作

chenssy阅读(1331)评论(0)赞(0)

B+树中,所有记录节点都按照键值的大小顺序放在同一层叶子节点,各个叶子节点指针进行连接。 图中指针是单向的,但是书上的图是双向的,而且旋转应该也是双向才能完成) B+树插入处理 LeafPage满 IndexPage满 操作 No No 直...