《MySQL技术内幕:InnoDB存储引擎第2版》——导读-阿里云开发者社区

开发者社区> 华章计算机> 正文

《MySQL技术内幕:InnoDB存储引擎第2版》——导读

简介: 过去这些年我一直在和各种不同的数据库打交道,见证了MySQL从一个小型的关系型数据库发展为各大企业的核心数据库系统的过程,并且参与了一些大大小小的项目的开发工作,成功地帮助开发人员构建了可靠的、健壮的应用程序。
+关注继续查看

image

前言


为什么要写这本书
过去这些年我一直在和各种不同的数据库打交道,见证了MySQL从一个小型的关系型数据库发展为各大企业的核心数据库系统的过程,并且参与了一些大大小小的项目的开发工作,成功地帮助开发人员构建了可靠的、健壮的应用程序。在这个过程中积累了一些经验,正是这些不断累积的经验赋予了我灵感,于是有了这本书。这本书实际上反映了这些年来我做了哪些事情,其中汇集了很多同行每天可能都会遇到的一些问题,并给出了解决方案。
MySQL数据库独有的插件式存储引擎架构使其和其他任何数据库都不同。不同的存储引擎有着完全不同的功能,而InnoDB存储引擎的存在使得MySQL跃入了企业级数据库领域。本书完整地讲解了InnoDB存储引擎中最重要的一些内容,即InnoDB的体系结构和工作原理,并结合InnoDB的源代码讲解了它的内部实现机制。
本书不仅讲述了InnoDB存储引擎的诸多功能和特性,还阐述了如何正确地使用这些功能和特性,更重要的是,还尝试了教我们如何Think Different。Think Different是20世纪90年代苹果公司在其旷日持久的宣传活动中提出的一个口号,借此来重振公司的品牌,更重要的是,这个口号改变了人们对技术在日常生活中的作用的看法。需要注意的是,苹果的口号不是Think Differently,是Think Different,Different在这里做名词,意味该思考些什么。
很多DBA和开发人员都相信某些“神话”,然而这些“神话”往往都是错误的。无论计算机技术发展的速度变得多快,数据库的使用变得多么简单,任何时候Why都比What重要。只有真正理解了内部实现原理、体系结构,才能更好地去使用。这正是人类正确思考问题的原则。因此,对于当前出现的技术,尽管学习其应用很重要,但更重要的是,应当正确地理解和使用这些技术。
关于本书,我的头脑里有很多个目标,但最重要的是想告诉大家如下几个简单的观点:
?不要相信任何的“神话”,学会自己思考;
?不要墨守成规,大部分人都知道的事情可能是错误的;
?不要相信网上的传言,去测试,根据自己的实践做出决定;
?花时间充分地思考,敢于提出质疑。
当前有关MySQL的书籍大部分都集中在教读者如何使用MySQL,例如SQL语句的使用、复制的搭建的、数据的切分等。没错,这对快速掌握和使用MySQL数据库非常有好处,但是真正的数据库工作者需要了解的不仅仅是应用,更多的是内部的具体实现。
MySQL数据库独有的插件式存储引擎使得想要在一本书内完整地讲解各个存储引擎变得十分困难,有的书可能偏重对MyISAM的介绍,有的可能偏重对InnoDB存储引擎的介绍。对于初级的DBA来说,这可能会使他们的理解变得更困难。对于大多数MySQL DBA和开发人员来说,他们往往更希望了解作为MySQL企业级数据库应用的第一存储引擎的InnoDB,我想在本书中,他们完全可以找到他们希望了解的内容。
再强调一遍,任何时候Why都比What重要,本书从源代码的角度对InnoDB的存储引擎的整个体系架构的各个组成部分进行了系统的分析和讲解,剖析了InnoDB存储引擎的核心实现和工作机制,相信这在其他书中是很难找到的。

目录

第1章 MySQL体系结构和存储引擎
1.1 定义数据库和实例
1.2 MySQL体系结构
1.3 MySQL存储引擎
1.4 各存储引擎之间的比较
1.5 连接MySQL
1.6 小结
第2章 InnoDB存储引擎
2.1 InnoDB存储引擎概述
2.2 InnoDB存储引擎的版本
2.3 InnoDB体系架构
2.4 Checkpoint技术
2.5 Master Thread工作方式
2.6 InnoDB关键特性
2.7 启动、关闭与恢复
2.8 小结
第3章 文件
3.1 参数文件
3.2 日志文件
3.3 套接字文件
3.4 pid文件
3.5 表结构定义文件
3.6 InnoDB存储引擎文件
3.7 小结

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
InnoDB的行溢出数据,Char的行结构存储
行溢出数据 InnoDB存储引擎可以将一条记录中的某些数据存储在真正的数据页面之外,即作为行溢出数据。一般认为BLOB、LOB这类的大对象列类型的存储会把数据存放在数据页面之外。但是,这个理解有点偏差,BLOB可以不将数据放在溢出页面,而即使是varchar列数据类型,依然有可能存放为行溢出数据。
760 0
MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
MyISAM更适合读密集的表,而InnoDB更适合写密集的的表。 在数据库做主从分离的情况下,经常选择MyISAM作为主库的存储引擎。
3440 0
InnoDB,能将数据存储在DVD里?
这些有意思的特性,你会最想尝试哪一个呢?
339 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
3975 0
《MySQL技术内幕:InnoDB存储引擎第2版》——导读
过去这些年我一直在和各种不同的数据库打交道,见证了MySQL从一个小型的关系型数据库发展为各大企业的核心数据库系统的过程,并且参与了一些大大小小的项目的开发工作,成功地帮助开发人员构建了可靠的、健壮的应用程序。
1481 0
InnoDB的后台线程(IO线程,master线程,锁监控线程,错误监控线程)和内存(缓冲池,重做日志缓冲池,额外内存池)
InnoDB有多个内存块,你可以认为这些内存块组成了一个大的内存池,负责如下工作: 维护所有进程/线程需要访问的多个内部数据结构。 缓存磁盘上的数据,方便快速地读取,并且在对磁盘文件的数据进行修改之前在这里缓存。
792 0
Innodb 下null '' ' '的存储表现的不同
今天顺便测试了一下 他们三者是不同的,简单的说就是 null :nullbits 位图上的区别。 '':可变字节多一个字节。 ' ':可变字节多一个字节且实际数据区域为0X20多一个字节。 如下语句: mysql> show create table testnull1 \G *************************** 1.
365 0
10059
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载