高性能MySQL --- 读书笔记(1) - 2016/8/2
此书不但帮助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,“锁的调试”,展示的是当几个查询在请求锁时相互妨碍时,该如何去破译其中的缘由。
高性能MySQL --- 读书笔记(1) - 2016/8/2的更多相关文章
- 高性能MySQL --- 读书笔记(2) - 2016/8/2
第1章 MySQL架构 MySQL架构与其他数据库服务器大不相同,这使它能够适应广泛的应用.MySQL足够灵活,能适应高要求架构.例如Web应用,同时还适用于嵌入式应用.数据仓库.内容索引和分发软件. ...
- 高性能mysql读书笔记(一):Schema与数据类型优化
4.5 加快ALTER TABLE 操作的速度 原理: MySQL 的ALTER TABLE 操作的性能对大表来说是个大问题. MySQL 执行大部分修改表结构操作的方法是用新的结构创建一个空表,从旧 ...
- 【MySQL 读书笔记】当我们在执行该查询语句的时候我们在干什么
看了非常多 MySQL 相关的书籍和文章,没有看到过如此优秀的专栏.所以未来一段时间我会梳理读完该专栏的所学所得. 当我们在执行该查询语句的时候我们在干什么 mysql> select * fr ...
- 【MySQL 读书笔记】SQL 刷脏页可能造成数据库抖动
开始今天读书笔记之前我觉得需要回顾一下当我们在更新一条数据的时候做了什么. 因为 WAL 技术的存在,所以当我们执行一条更新语句的时候是先写日志,后写磁盘的.当我们在内存中写入了 redolog 之后 ...
- 【MySQL 读书笔记】普通索引和唯一索引应该怎么选择
通常我们在做这个选择的时候,考虑得最多的应该是如果我们需要让 Database MySQL 来帮助我们从数据库层面过滤掉对应字段的重复数据我们会选择唯一索引,如果没有前者的需求,一般都会使用普通索引. ...
- 【MySQL 读书笔记】RR(REPEATABLE-READ)事务隔离详解
这篇我觉得有点难度,我会更慢的更详细的分析一些 case . MySQL 的默认事务隔离级别和其他几个主流数据库隔离级别不同,他的事务隔离级别是 RR(REPEATABLE-READ) 其他的主流数据 ...
- 【MySQL 读书笔记】全局锁 | 表锁 | 行锁
全局锁 全局锁是针对数据库实例的直接加锁,MySQL 提供了一个加全局锁的方法, Flush tables with read lock 可以使用锁将整个表的增删改操作都锁上其中包括 ddl 语句,只 ...
- 【MySQL 读书笔记】当我们在使用索引的时候我们在做什么
我记得之前博客我也写过关于索引使用的文章,但是并不全面,这次尽量针对重点铺全面一点. 因为索引是数据引擎层的结构我们只针对最常见使用的 Innodb 使用的 B+Tree 搜索树结构进行介绍. 每一个 ...
- 《高性能MySQL》笔记——MySQL建表数据类型的选择
前段时间看了<高性能MySQL>中的选择优化的数据类型,这里主要是做一下笔记. 首先数据选择有几个简单原则: 更小的通常更好.一般情况下,应该尽量使用可以正确存储数据的最小数据类型.例如只 ...
随机推荐
- postgresql基本操作:查看数据库、索引、表、表空间大小
一.简介 PostgreSQL 提供了多个系统管理函数来查看表,索引,表空间及数据库的大小,下面详细介绍一下. 二.数据库对象尺寸函数 函数名 返回类型 描述 pg_column_size(any) ...
- Core Java Volume I — 3.4. Variables
3.4. VariablesIn Java, every variable has a type. You declare a variable by placing the type first, ...
- spring和redis的整合-超越昨天的自己系列(7)
超越昨天的自己系列(7) 扯淡: 最近一直在慢慢多学习各个组件,自己搭建出一些想法.是一个涉猎的过程,慢慢意识到知识是可以融汇贯通,举一反三的,不过前提好像是研究的比较深,有了自己的见解.自认为学习 ...
- wxPython
wxPython是python GUI的工具箱. 一, 安装 http://wiki.wxpython.org/How%20to%20install%20wxPython 稳定的wxpython 需要 ...
- OptionParser
给个例子: from optparse import OptionParser msg_usage = 'usage: %prog [-W] windows size [-H] h island si ...
- eclipse ERROR: Unable to add module to the current project as it is not of ...
原因: Workspace下放了个POM文件,造成了M2eclipse插件的误解. 解决方案: 删掉就OK了.
- 完全搞懂傅里叶变换和小波(2)——三个中值定理<转载>
书接上文,本文章是该系列的第二篇,按照总纲中给出的框架,本节介绍三个中值定理,包括它们的证明及几何意义.这三个中值定理是高等数学中非常基础的部分,如果读者对于高数的内容已经非常了解,大可跳过此部分.当 ...
- tyvj1012 P1012 - 火柴棒等式 ——暴力枚举
题目链接:https://www.tyvj.cn/Problem_Show.aspx?id=1012 可以发现:最大的数字绝对不超过999,只要枚举出0-999所有数字需要的火柴数,然后再枚举C和A, ...
- nginx的HA集群及配置
一.服务器环境 master服务器: ip:192.168.11.155 系统环境:CentOS release 6.5 (Final) 内核版本:2.6.32-431.el6.x86_64 防火墙和 ...
- PC端的混合应用通讯问题
exe使用C#开发,内嵌HTML页面HTML页面与exe程序的通讯方式可以使用以下方式: HTML通知exe:C#有个titlechange事件,可以监听内部HTML的title,那么HTML就可以通 ...