关闭
侧边栏

InnoDB存储引擎文件

Posted by dbtan on 五月 18th, 2016

我们知道MySQL数据库相关的一些文件,可以分为MySQL数据库文件以及各存储引擎相关的文件。与MySQL数据库有关的文件中,错误文件和二进制日志文件非常重要。当MySQL数据库发生任何错误时,DBA首先就应该去查看错误文件,从文件提示的内容中找出问题所在。当然,错误文件不仅记录了错误内容,也记录了警告的信息,通过一些警告也有助于DBA对于数据库和存储引擎进行优化。接下来,我们介绍与InnoDB存储引擎密切相关的文件,这些文件包括表空间文件重做日志文件

表空间文件

InnoDB采用将存储的数据按表空间(tablespace)进行存放的设计。在默认配置下会
... ...
<阅读全文>

MySQL二进制日志(binlog)

Posted by dbtan on 五月 13th, 2016

二进制日志(binary log)记录了对MySQL数据库执行更改的所有操作,但是不包括SELECTSHOW这类操作,因为这类操作对数据本身并没有修改。然而,若操作本身并没有导致数据发生变化,那么该操作可能也会写入二进制日志。例如:

SQL
tqdb@localhost.[tqdb] 16:00:48> update t set b = 'dbtan' ... ...
<阅读全文>

MySQL InnoDB锁和死锁

Posted by dbtan on 五月 1st, 2016

在使用MySQL的业务中,经常会碰到各种MySQL的死锁。一直以来,我们接触比较多的是Oracle数据库,而大家正在逐步开始使用MySQL数据库,都对MySQL的死锁不甚了解,趁这次机会,好好学习一下MySQL的死锁。我们的死锁的讨论是在InnoDB引擎基础上的。

1. MySQL索引

1.1 聚簇索引(Clustered Indexes)

InnoDB存储引擎的数据组织方式,是聚簇索引表:完整的记录,存储在主键索引中,通过主键索引,就可以获取记录所有的列。

每个InnoDB的表有一个特殊的索引称之为聚簇索引,每行的数据就是存储在聚簇索引中。通常,聚簇索引和主键同义。

当你在你的表上面定义一个主键时,InnoDB将其作为聚簇索引。建议为你的表
... ...
<阅读全文>

MySQL使用可重复读作为默认隔离级别的原因

Posted by dbtan on 十月 7th, 2015

一般的RDBMS系统,默认都会使用读提交(Read-Comitted,RC)作为默认隔离级别,如Oracle、SQL Server等,而MySQL却使用可重复读(Read-Repeatable,RR)。要知道,越高的隔离级别,能解决的数据一致性问题越多,理论上性能损耗更大,可并发性越低。隔离级别依次为:SERIALIZABLE > RR > RC > Read-Uncommited

在SQL标准中,前三种隔离级别分别解决了幻象读、不可重复读和脏读的问题。那么,为什么MySQL使用可重复读作为默认隔离级别呢?

 

1. 从Binlog说起

Binlog是MySQL的逻辑操作日志,广泛应用于复制和恢复。MySQL 5.1以前,Statement是Binlog的默认格式
... ...
<阅读全文>


Copyright © 2009 - 2018 https://www.dbtan.com. All rights reserved.    京ICP备13006977号-1