![](https://img-blog.csdnimg.cn/20200217152609148.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
MySQL
数据库MySQL
A__Plus
这个作者很懒,什么都没留下…
展开
-
InnoDB存储引擎事务ACID的实现
InnoDB存储引擎对事务有着良好的支持,完全符合ACID的特性,支持以下几种事务类型:扁平事务带有保存点的事务链事务分布式事务InnoDB不支持嵌套事务,用户可通过带有保存点的事务来模拟串行的嵌套事务。1 事务的实现事务隔离性由锁来实现,原子性、一致性、持久性由InnoDB的redo log和undo log来完成...原创 2019-09-03 21:02:06 · 418 阅读 · 0 评论 -
InnoDB存储引擎的锁机制详解
数据库的锁机制用于管理对共享数据的并发访问。InnoDB存储引擎的锁实现和Oracle数据库很类似,提供了一致性的非锁定读、行级锁支持。行级锁没有相关额外的开销,并可以同时得到并发性和一致性。在了解InnoDB锁机制之前,我们先要关注lock和latch的区别。它们二者都可以称之为锁,但使用场景有着很多区别。latch要求锁定的时间必须很短,如果锁定的时间很长,则会严重影响性能。在InnoDB...原创 2019-09-02 14:26:33 · 369 阅读 · 0 评论 -
InnoDB存储引擎的索引实现:B+树索引、全文索引、自适应哈希索引
InnoDB存储引擎支持以下索引:B+树索引全文索引哈希索引InnoDB存储引擎支持的哈希索引是自适应的,它会根据表的实际查询情况自动为表生成哈希索引,不能对哈希索引进行人为的干预。B+树索引并不能找到一个给定键值的具体行,只能找到被查找数据行所在的页,通过把该页读入到内存进行查找,最后将数据返回给客户端。B+树索引B+树索引在数据库中一般都在2~4层,也就是说查找到一条记录所在...原创 2019-08-30 20:24:37 · 659 阅读 · 0 评论 -
InnoDB存储引擎的数据存储方式(存储模式)
逻辑存储结构在InnoDB存储引擎中,所有数据都存放在表空间(tablespace)中,表空间由段(segment)、区(extent)、页(page)、行(Row)组成,它们的关系如下图:表空间(tablespace)在MySQL中,所有InnoDB存储引擎表中的数据都存储在表空间中。如果用户启用了innodb_file_per_table,那么每张表内的数据可以存储在一个单独的表空间文...原创 2019-08-28 14:06:49 · 2602 阅读 · 0 评论 -
InnoDB存储引擎的重做日志文件(Redo log)
默认情况下,InnoDB存储引擎的数据存放目录下有两个名为`ib_logfile0`和`ib_logfile1`文件,这两个文件就是重做日志文件(`redo log file`),该文件记录了对于InnoDB存储引擎的事务日志。重做日志的作用是当数据库发生宕机导致发生`media failure`时,可以通过这个文件进行数据恢复,用来保证InnoDB表存储的数据不会轻易因为宕机而丢失。具体来说,就是用来**恢复已经提交的事务中因为宕机的缘故还没有来得及持久化到磁盘的事务操作**。原创 2019-08-16 23:39:43 · 794 阅读 · 0 评论 -
InnoDB存储引擎关键特性简要介绍:插入缓冲、两次写、自适应哈希索引、异步IO、邻接页刷新
整体结构InnoDB存储引擎由多个**内存块**和多个**后台线程**组成,其中:- 内存块包含三个部分:`redo log_buffer`、`innodb_buffer_pool`、`innodb_additional_mem_pool_size`。`redo log_buffer`用来缓存重做日志,`innodb_additional_mem_pool_size`一般用来缓存LRU、锁等数据结构。`innodb_buffer_pool`即**缓冲池**,包含了数据页、索引页、undo页、插入缓冲、原创 2019-08-11 01:26:49 · 572 阅读 · 0 评论 -
浅谈MySQL的主从复制机制
引言MySQL从3.23版本开始提供复制功能。复制功能能将主数据库上的DDL、DML操作通过日志的形式传送到从数据库,然后从数据负责执行这些日志中的操作,从而达到主从数据库的一致。MySQL的复制功能是实现MySQL集群的基础。复制过程概述(1)MySQL主库在事务提交时会将数据变更的操作作为事件记录在二进制日志中。(2)主库主动推送二进制日志的信息到从库的中继日志文件中,之后从库根据中继...原创 2019-04-12 17:45:32 · 336 阅读 · 0 评论 -
MySQL常用存储引擎MyISAM和InnoDB的区别和比较
引言现在,MySQL数据库常用的存储引擎为MyISAM和InnoDB。MyISAM在MySQL 5.5之前一直是默认的存储引擎,不过在近些年来MySQL的发展下,InnoDB逐渐替代了MyISAM存储引擎。本文从锁机制、事务、存储结构、索引等角度来分析这两个存储引擎之间的差异。锁机制MySQL的锁机制相对于其它数据库产品而言比较简单,可以分为3类:1、表级锁:开销小,加锁快,不会出现死锁,...原创 2019-04-11 18:31:06 · 3229 阅读 · 1 评论 -
MySQL表连接查询基础
一、表连接查询的用途当需要同时显示多个表的字段时,就可以用表连接来实现这样的功能。表连接分为内连接和外连接。内连接仅选出两张表中互相匹配的记录,而外连接会选出其他不匹配的记录。二、示例以下面两张表为示范:表名:teacher_table 建表语句:create table teacher_table( teacher_id int not null auto_increment prima原创 2018-03-23 19:41:45 · 409 阅读 · 0 评论