MySQL技术内幕InnoDB存储引擎学习笔记(第九章)

来源:互联网 发布:c语言if else if 编辑:程序博客网 时间:2024/05/18 13:24

                       第九章 性能调优

一、实验环境

宿主机系统:windows7

虚拟机:OracleVMVirtualBox

Linux:ubuntukylin-14.04.1-amd64.iso

jdk:1.7.0_101

mysql:5.7.12

书上的mysql版本:5.6.6

二、影响性能的因素

选择合适的CPU

内存的重要性

硬盘对数据库性能的影响

合理地设置RAID

操作系统的选择也很重要

不同文件系统对数据库的影响

选择合适的基准测试工具

三、几种影响因素的介绍。

1.选择合适的CPU

当前数据库应用类型:OLTP(在线事务处理)和 OLAP(在线分析处理)

OLAP多用在数据仓库或者数据集市中,CPU密集型操作。

OLTP多用在日常的事物处理应用中,IO密集型操作。

innodb存储引擎一般都应用于OLTP的数据库应用,特点如下:

用户操作的并发量大;

事务处理的时间较短;

查询的语句较为简单,一般都走索引;

复杂的查询较少。

CPU对OLTP的影响不是很大,多个CPU或多核CPU对处理大并发量的请求有帮助。

2.内存的重要性

内存的大小最能直接反应数据库的性能。

innodb既缓存数据,又缓存索引,并将它们缓存在一个很大的缓冲池中,因此,内存的大小直接影响了数据库的性能。

如何判断当前数据库内存是否已到达瓶颈?查看当前服务器的状态,比较物理磁盘的读取和内存读取的比例来判断缓冲池的命中率,不应小于99%

缓冲池命中率=innodb_buffer_pool_read_requests/(innodb_buffer_pool_read_requests+innodb_buffer_pool_read_ahead+innodb_buffer_pool_reads)

平均每次读取的字节数=innodb_data_read/innodb_data_reads

命令:mysql>show global staus like 'innodb%read%';

3.硬盘对数据库性能的影响

传统的机械硬盘

两个指标:

1.寻道时间

2.转速

顺序访问的速度高于随机访问。。

可以将多块机械硬盘组成RAID来提高数据库的性能,也可以将数据文件分布在不同硬盘上来达到访问负载的均衡。

固态硬盘

基于闪存的固态硬盘,内部由闪存组成。已经在移动设备上得到了广泛的应用。

固态硬盘没有传统机械硬盘的读写磁头。所以不需要耗费大量时间找数据。可以提供一致的随机访问时间。

4.合理地设置RAID (独立磁盘冗余数组)

把多个相对便宜的硬盘组合起来,成为一个磁盘数组,使性能达到甚至超过一个价格昂贵,容量巨大的硬盘。

RAID的作用是:

1.增强数据集成度

2.增强容错功能

3.增加处理量或容量

对于数据库来讲RAID10是最好的选择。

5.操作系统的选择也很重要

Linux:稳定性较好

FreeBSD

Solaris

windows

6.不同文件系统对数据库的影响

文件系统很多,性能差异不明显。

ZFS本身支持快照,不需要LVM工具

mount参数。

7.选择合适的基准测试工具

对数据库或操作系统调优后的性能进行对比。

sysbench:模块化的,跨平台的多线程基准测试工具,主要用于测试各种不同系统参数下的数据库负载情况。包括:cpu性能,磁盘IO性能,调度程序性能,内存分配及传输速度,POSIX线程性能,数据库OLTP基准测试。官网:http://sysbench.sourceforge.net

测试分三个阶段:prepare、run、cleanup

mysql-tpcc

TPC(事务处理性能协会):用来评价大型数据库系统软硬件性能的非盈利性组织。

TPC-C是TPC制定,用来测试典型的复杂OLTP系统的性能。

TPC-C性能度量单位是tpmC,该值越大,代表事务处理的性能越高。

tpcc-mysql是开源的TPC-C测试工具,该测试工具完全遵守TPC-C的标准。

两个工具组成:

1.tpcc_load:根据仓库数量,生成9张表中数据

用tpcc_load创建100个仓库的数据库tpcc:

mysql  tpcc<create_table.sql

mysql  tpcc<add_fkey_idx.sql

tpcc_load  127.0.0.1 tpcc2  root xxxxxx  100

2.tpcc_start:根据不同选项进行TPC-C测试。

用tpcc_start进行16个线程的测试,热身时间为10分钟,测试时间为20分钟:

tpcc_start127.0.0.1 tpcc root xxxxxx 100 16 600 1200

结果分5个模块:new order ,payment,order-status,delivery,stock-level

0 0
原创粉丝点击