[关闭]
@wxf 2018-01-25T02:00:35.000000Z 字数 6794 阅读 872

什么影响了MySQL性能

【实战课】MySql性能管理及架构设计


MySql性能管理及架构设计

什么影响了MySQL性能

服务器硬件对性能的影响

服务器硬件对MySQL性能的影响可总结为如下几点:

操作系统对性能的影响

系统参数优化(CentOS)

文件系统对性能的影响

MySql的体系结构

image_1bt9umjr2118j13f5bgp991t3g9.png-82.1kB

说明:
客户端(Java、C API、.Net以及JDBC等),在客户端层面主要完成的是链接处理授权认证等功能。每个链接到MySql的客户端都会在进程中拥有一个线程。链接的查询只会在这个单独的线程中执行,也就是每个链接的查询只能用到一个CPU的核心。
MySql服务层,包括链接管理器、查询缓存、查询解析、查询优化器以及所有的内置函数等。
存储引擎层(innodb,myisam,XtraDB等),了解MySql存储引擎对我们后面优化MySql性能有重要的影响。

MySql常用存储引擎

常用存储引擎-MyISAM

MySql5.5之前版本默认存储引擎

特性:

使用场景:

常用存储引擎-Innodb

MySql5.5之后版本默认存储引擎,Innodb是事务型存储引擎,它是支持事务的ACID特性的。Innodb使用表空间进行数据存储。

Innodb有表空间的概念,表中的数据是存储在表空间的。而参数innodb_file_per_table决定了使用什么样的表空间,若值为NO则表示数据会存储到独立表空间(tablename.ibd);若值为OFF则表示数据会存储到系统共享表空间(ibdataX)。

查看innodb_file_per_table值的方式:show variables like 'innodb_file_per_table';
设置innodb_file_per_table值的方式:set global innodb_file_per_table = off;

那么问题来了,如何选择系统表空间和独立表空间呢?
1.比较:

2.建议:使用独立表空间

表空间转移的步骤(把原来存在于系统表空间中的表转移到独立表空间中的方法):

Innodb的特性
Innodb存储引擎的特性

常用存储引擎-CSV

CSV存储引擎是基于CSV格式文件存储数据的。

常用存储引擎-Archive

常用存储引擎-Memory

也称为HEAP存储引擎,所以数据保存在内存中,具有易失性。

MySql服务器参数

内存配置相关参数

I/O相关配置参数

这部分参数决定了MySql如何同步缓存区的数据到磁盘上。下面主要介绍一下Innodb引擎的I/O相关参数。
Innodb I/O相关参数
innodb_log_file_size和innodb_log_files_in_group这个两个参数决定了Innodb事务日志(Redo Log)的大小和数量。Innodb是一种事务型的存储引擎,为了减少提交事务时产生的开销Innodb使用了预写日志的方式,也就是每次提交事务时会先将数据写入到事务日志中,而不是每次都把修改后的数据写入到数据文件中,从而提高I/O性能。

安全相关配置参数

其他相关配置参数


[1] ACID表示原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持久性(durability)
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注