此书不但帮助MySQL初学者提高使用技巧,更为有经验的MySQL DBA指出了开发高性能MySQL应用的途径。全书包括14章,内容覆盖MySQL系统架构、设计应用技巧、SQL语句优化、服务器性能调优、系统配置管理和安全设置、监控分析,以及复制、扩展和备份/还原等主题。
MySQL为名的数据库是从1994年开始开发,并与1995年第一次呈现在小范围的用户面前,开发者是两个瑞典人Widenius和David Axmark。那时MySQL还非常简陋,除了在一些表上做一些Inser、Update、Delete和Select操作,恐怕没有更多功能给用户使用。知道2001年发布3.23版的时候,有了明显的进步---它支持大多数的基本SQL操作,还继承了现在熟悉的MyISAM和InnoDB存储引擎。到2004年10月,4.1经典版本发布。2005年10月,里程碑式版本发布,在新的MySQL5.0里加入了游标、存储过程、触发器、视图和事务的支持,准备进入中高端应用领域。在5.0之后的版本里,MySQL明确地表现出迈向高性能数据库的发展步伐。
MySQL支持增、删、改、查、联接、嵌套查询,视图、存储过程、触发器、事务,以及集群。
但是,使用MySQL是一回事,用好MySQL又是另外一回事。本书系统性地从各个方面讲述一个高性能MySQL应用应该怎么来做。
目录
第1章 MySQL架构
第2章 寻找瓶颈:基准测试与性能分析
第3章 架构优化和索引
第4章 高性能优化
第5章 MySQL高级特性
第6章 优化服务器设置
第7章 操作系统和硬件优化
第8章 复制
第9章 伸缩性与高可用性
第10章 应用层面的优化
第11章 备份与还原
第12章 安全
第13章 MySQL服务器的状态
第14章 用于高性能MySQL的工具
附录A 大文件传输
附录B 使用EXPLAIN
附录C 在MySQL里使用Sphinx
附录D 锁的调试
前言
作者希望能帮助你把技能提高一个层次,用MySQL构建出快速、可用的系统---它能解答类似这样的问题:“我怎么才能搭建起一个MySQL服务器集群,它能处理数以百万计的请求,哪怕有几台服务器宕机时,它仍然能正常提供服务?”
内容广泛的概述:
第1章,MySQL架构,用于讲述基础知识。你需要在高效利用MySQL前理解整个框架是如何被组织起来的。这一章解释了MySQL的架构和它存储引擎的关键方面。
构建一个坚实的基础:
第2章,寻找瓶颈:基准测试和性能瓶颈,讨论了基准测试和获取系统概况的基础。它们决定了你的系统能处理哪一类型的工作负荷、执行某些任务时它能运行得多快等。你会希望在做重要更改的前后都能对你的应用做一次基准测试,这样就可以判断这些更改产生了多大的效果。有些看似正面的更改在真实世界的负载压力下可能会编成负面的影响,除非你能精确地对其进行衡量,否则你是永远都不知道到底是什么导致糟糕的系统性能。
第3章,架构优化和索引,会介绍各数据类型的西外差别、表的设计和索引的创建。一个设计良好的数据库能有助于MySQL获得更佳的性能表现。很多内容的关键点都在于你的应用是怎么使用MySQL的索引的。深刻认识索引以及如何巧妙第运用他们是高效使用MySQL的核心所在。
第4章,查询性能优化,解释了MySQL是怎样执行查询的,以及怎么才能利用查询优化器的能力。深入领会查询优化器的工作方法能帮你在编写查询时创造奇迹,也能帮你更好地理解索引。还特别展示了那些常见的查询示例,用来说明MySQL所擅长的是哪方面的工作,怎么把查询转换成能够利用查询优化器强大的形式。
已经讲述过对任何数据库都适用的一些基本概念:表、索引、数据和查询。第5章,MySQL高级特性,将在上述基础上再进一步,展示MySQL内部那些更高层次的框架是如何运作的。会介绍查询缓存、存储过程、触发器、字符集等内容。MySQL实现这些功能特性的方法跟其他数据库有点不一样,因此,对这些特性的深入理解能够帮你创造一个性能优化的新机会。
调优你的应用:
第6章,优化服务器设置,讨论的是如何调优MySQL,使它能在最大程度上让硬件特性为你的特定应用服务。第7章,操作系统和硬件优化。解释如何充分利用你的操作系统和硬件配置,同时为大规模应用提供了某些能提高性能的硬件配置建议。
配置更改之后的向上扩展:
一台服务器往往是不够用的。第8章,复制,介绍如何将数据自动地复制到多台服务器上。第9章,“伸缩性与高可用性”,讲述如何将伸缩性、负载平衡和高可用性综合起来运用,为应用伸展到你所需要的程度提供基础性工作。
增强应用的可靠性:
哪怕是设计得最好、伸缩性最强的架构,如果它不能在掉电、恶意攻击、程序Bug、程序员的过失,以及其他灾难中幸存下来,那么它也算不上是好的架构。
第11章,“备份和还原”,会讨论到不同的MySQL数据库备份和还原测试。有助于在系统遭受到不可避免的硬件错误时最小化故障停机时间,遇到各种灾难时确保你的数据安全。
第12章,“安全”,让你对运行MySQL服务器涉及的安全因素有深入的认识。提供了很多建议防止来自外部的攻击威胁到服务器。还会指出几个很少见的暴漏出数据库安全问题的地方,并展示不同的实施方法的好处以及对性能的影响。
其他有用的主题:
第13章,“MySQL服务器的状态0,展示的是如何检查MySQL服务器运行情况。知道如何获取服务器的状态信息很重要,知道那些信息包含的意思更加很重要。针对SHOW INNODB STATUS作了特别具体的讲解,它能提供关于InnoDB事务存储引擎的更深层次的操作信息。
第14章,“用于高性能的MySQL工具”,介绍了一些能帮你更有效管理MySQL的工具。这些工具包括监控和分析工具,以及能帮助你编写查询语句的工具。
附录A,“大文件传输”,展示如何高效地把很大的文件从一个地方复制到另一个地方。附录B,“使用EXPLAIN”,展示如何真正理解和使用那个重要的EXPLAIN命令。附录C,“在MySQL里使用Sphinx”是对Sphinx的一个介绍,这个高性能全文索引系统是对MySQL*功能的一个补充。附录D,“锁的调试”,展示的是当几个查询在请求锁时相互妨碍时,该如何去破译其中的缘由。