MySQL读书学习笔记
文章平均质量分 75
wuqingdeqing
生如逐放 心有焰藏
展开
-
MySQL读书学习笔记(一)——架构
MySQL最与众不同的特性是他的存储引擎架构,这种架构的设计将查询处理(Query Processing)及其他系统任务和数据存储、提取相分离。这种处理和存储分离的设计可以在使用时根据性能、特性,以及其他需求来选择数据存储的方式。1.1 MySQL逻辑架构1.1.1 连接管理和安全性每个客户端连接都会在服务器进程中拥有一个线程,这个连接的查询只会在这个单独的线程中执行,该线程只能在某个CPU核心或...原创 2018-02-15 16:01:31 · 347 阅读 · 0 评论 -
MySQL读书学习笔记(九)——可扩展
9.1 概述简要地说,可扩展性表明了当需要增加资源以执行更多工作时系统能够获得划算的等同提升的能力。缺乏扩展能力的系统在达到收益递减的转折点后,将无法进一步增长。9.1.1 定义数学上,可扩展性是增加资源以处理负载和增加容量时系统能够获得的投资产出率。9.2 扩展MySQL如果将应用所有数据简单地放到单个MySQL服务器实例上,则无法很好地扩展,迟早遇到性能瓶颈。对于许多类型的应用,传统的解决方法...原创 2018-02-22 13:54:36 · 262 阅读 · 0 评论 -
MySQL读书学习笔记(八)——复制
MySQL内建的复制功能是构建基于MySQL的大规模、高性能应用的基础,这类应用使用所谓的“水平扩展”的架构。我们可以通过为服务器配置一个或多个备库的方式来进行数据同步。复制功能不仅有利于构建高性能的应用,同时也是搞可用性、高扩展性、灾难恢复、备份以及数据仓库等工作的的基础。8.1 概述复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。一台主库的数据可以同步到多台备库上,备库本身也可以被...原创 2018-02-22 09:51:58 · 275 阅读 · 0 评论 -
MySQL读书学习笔记(七)——操作系统与硬件优化
7.1 瓶颈许多不同的硬件都可以影响MySQL的性能,但我们认为最常见的两个瓶颈是CPU和I/O。当数据可以放在内存中或者可以从磁盘中以足够快的速度读取时,CPU可能出现瓶颈。把大量数据集放到大容量内存中,以现在的硬件条件完全是可行的。I/O瓶颈,一般发生在工作所需的数据远远超过有效内存容量的时候。如果应用程序是分布在网络上的,或者如果有大量查询或低延迟要求,瓶颈可能转移到网络上,而不再是磁盘I/...原创 2018-02-21 19:56:35 · 307 阅读 · 0 评论 -
MySQL读书学习笔记(六)——优化服务器设置
6.1 配置的工作原理获取MySQL配置信息:命令行参数和配置文件。在类Unix系统中,配置文件一般在/etc/my.cnf或者/etc/mysql/my.cnf。如果使用操作系统的启动脚本,这通常是唯一指定配置设置的地方。如果手动启动MySQL,例如在测试安装时,也可以在命令行指定设置。实际上,服务器会读取配置文件的内容,删除所有注释和换行,然后和命令行选项一起处理。6.1.1 语法、作用域和动...原创 2018-02-21 09:36:47 · 274 阅读 · 0 评论 -
MySQL读书学习笔记(五)——高级特性
5.1 分区表对用户来说,分区表示一个独立的逻辑表,但是底层由多个物理子表组成。实现分区表的代码实际上是对一组底层表的句柄对象(Handler Object)的封装。对分区表的请求,都会通过句柄对象转化成对存储引擎的接口调用。所以分区对于SQL来说是一个完全封装底层实现的黑盒,对应用是透明的,但是从底层的文件系统来看就很容易发现,没一个分区表都有一个使用#分隔命名的表文件。5.1.1 分区表的原理...原创 2018-02-20 19:15:57 · 445 阅读 · 0 评论 -
MySQL读书学习笔记(四)——查询性能优化
4.1 为什么慢了解查询的生命周期,清楚查询的时间消耗情况对于优化查询有很大意义。4.2 慢查询基础:优化数据访问查询性能低下最基本的原因是访问数据太多。某些查询可能不可避免地需要筛选大量数据,但这并不常见。大部分性能低下的查询都可以通过减少访问的数据量的方式进行优化。对于低效的查询,可以用下面的两个步骤来分析:1.确认应用程序是否检索大量超过需要的数据。2.确认MySQL服务器层是否在分析大量超...原创 2018-02-19 20:43:39 · 416 阅读 · 0 评论 -
MySQL读书学习笔记(三)——高性能索引
索引(MySQL也叫key)是存储引擎用于快速找到记录的一种数据结构。索引对于良好的性能非常关键,尤其当表的数据量越来越大时。3.1 索引基础3.1.1 索引类型B-Tree索引默认的索引类型。大多数MySQL引擎都支持这种索引。B-Tree意味着所有值都是按顺序存储的,并且每一个叶子页到跟的距离相同。B-Tree索引能够加快访问数据的速度,因为存储引擎不再需要进行全表扫描来获取需要的数据,而是从...原创 2018-02-18 22:44:02 · 201 阅读 · 0 评论 -
MySQL读书学习笔记(二)——schema与数据类型优化
2.1 选择优化的数据类型更小应尽量使用可以存储数据的最小数据类型。更小的数据通常更快,因为它们占更少的磁盘、内存和CPU缓存,并且处理时需要的CPU周期也更少。但要确保没有低估需要存储的值的范围,因为在schema中的多个地方增加数据类型的范围是一个非常耗时和痛苦的操作。简单简单数据类型的操作通常需要更少的CPU周期。避免NULL很多表都包含可为null的列,即使应用程序不需要保存null时也是...原创 2018-02-17 17:37:40 · 298 阅读 · 0 评论 -
MySQL读书学习笔记(十)——高可用性
10.1 概念它通常以百分比表示:表明它不是绝对的,只有相对更高的可用性。100%的可用性是不可能达到的。可用性的“9”规则是表示可用性目标最普遍的方法。“5个9”表示99.999%的正常可用时间。换句话说,每年只允许5min的宕机时间。10.2 宕机原因最运行环境中,最普遍的原因是磁盘空间耗尽。在性能问题中,最普遍的原因是运行了糟糕的SQL,但也不一定全是如此,有可能是服务器bug或错误的行为。...原创 2018-02-24 17:15:34 · 195 阅读 · 0 评论