暂时未有相关云产品技术能力~
数据库领域优质作者,无偿分享学习经验
我们知道像InnoDB、MyISAM这样的存储引擎都是把表存储在磁盘上的,而操作系统用来管理磁盘的那个东东又被称为文件系统,所以用专业一点的话来表述就是:像 InnoDB 、 MyISAM 这样的存储引擎都是把表存储在文件系统上的。当我们想读取数据的时候,这些存储引擎会从文件系统中把数据读出来返回给我们,当我们想写入数据的时候,这些存储引擎会把这些数据又写回文件系统。本章就是学习下InnoDB和MyISAM这两个存储引擎的数据如何在文件系统中存储的
通过前边的内容,相信大家都知道了表空间是一个抽象的概念,对于系统表空间来说,对应着文件系统中一个或多个实际文件;对于每个独立表空间来说,对应着文件系统中一个名为表名.ibd的实际文件。 大家可以把表空间想象成被切分为许多个页的池子,当我们想为某个表插入一条记录的时候,就从池子中捞出一个对应的页来把数据写进去。 本章内容会深入到表空间的各个细节中,带领大家在InnoDB存储结构的池子中畅游。由于本章中将会涉及比较多的概念,虽然这些概念都不难,但是却相互依赖,所以奉劝大家看的时候:不要跳着看
通过前边的内容,相信大家都知道了表空间是一个抽象的概念,对于系统表空间来说,对应着文件系统中一个或多个实际文件;对于每个独立表空间来说,对应着文件系统中一个名为表名.ibd的实际文件。 大家可以把表空间想象成被切分为许多个页的池子,当我们想为某个表插入一条记录的时候,就从池子中捞出一个对应的页来把数据写进去。 本章内容会深入到表空间的各个细节中,带领大家在InnoDB存储结构的池子中畅游。由于本章中将会涉及比较多的概念,虽然这些概念都不难,但是却相互依赖,所以奉劝大家看的时候:不要跳着看
搞数据库一个避不开的概念就是Join,翻译成中⽂就是连接。相信很多小伙伴初学连接的时候有些一脸懵,理解了连接的语义之后又可能不明白各个表中的记录到底是怎么连起来的,以至于在使用的时候常常陷入下边两种误区: 误区一:业务至上,管他三七二十一,再复杂的查询也用在一个连接语句中搞定 误区二:敬而远之,慢查询可能就是因为使用了连接导致的,以后再也不敢乱用了 所以本章就来学习连接的原理。考虑到一部分小伙伴可能忘了连接是个啥或者压根就不知道,为了节省他们百度或者看其他书的宝贵时间,我们先来介绍一下 MySQL 中支持的一些连接语法。 有兴趣的小伙伴也可以看看【数据库原理 • 二】关系数据库理论【直通车
我们之前老说MySQL执行一个查询可以有不同的执行方案,它会选择其中成本最低,或者说代价最低的那种方案去真正的执行查询,怎么就带大家详细了解一下
我们之前老说MySQL执行一个查询可以有不同的执行方案,它会选择其中成本最低,或者说代价最低的那种方案去真正的执行查询,怎么就带大家详细了解一下
我们前边唠叨查询成本的时候经常用到一些统计数据,比如通过show table status可以看到关于表的统计数据,通过show index可以看到关于索引的统计数据,那么这些统计数据是怎么来的呢?它们是以什么方式收集的呢?本章将聚焦于InnoDB存储引擎的统计数据收集策略,看完本章后家就会明白为啥前边老说InnoDB的统计信息是不精确的估计值了
我们无法避免某些小伙伴写一些执行起来十分耗费性能的语句。即使是这样,MySQL的还是依据一些规则,竭尽全力的把这个很糟糕的语句转换成某种可以比较高效执行的形式,本章主要就是详细讲解下这些比较重要的重写规则。