MySQL性能调优
- 在RHEL / CentOS 7上安装LAMP
- 在Fedora 22上安装LAMP
- 在Ubuntu 15.04上设置LAMP
- 在Debian 8上安装MariaDB
- 在Gentoo Linux上安装MariaDB
- 在Arch Linux上安装MariaDB
- MySQL的/ MariaDB的配置文件位于
/etc/my.cnf
。每次修改此文件时,您将需要重新启动MySQL服务,以便新更改可以生效。 - 写这篇文章的MySQL 5.6版已被用作模板。
1.启用InnoDB文件每表
首先,它说明 InnoDB的一个存储引擎是非常重要的。 MySQL和MariaDB使用InnoDB作为默认存储引擎。在过去,MySQL用于在系统表空间中保留数据库表和索引。此方法适用于仅以数据库处理为目的且其存储磁盘不用于任何其他目的的服务器。 InnoDB的提供了更灵活的方法,每个数据库中的信息保存在一个.ibd
数据文件。 每个文件
的.ibd代表它自己的表空间。 这样,数据库操作,如
“TRUNCATE”,可以更快的完成和删除或截断一个数据库表时,你还可以回收未使用的空间。 此配置的另一个好处是,您可以将一些数据库表保存在单独的存储设备中。这可以大大提高您的磁盘
I / O负载。 该
innodb_file_per_table默认情况下,在MySQL中5.6及以上有效。 你可以看到,在
/etc/my.cnf中的文件。该指令看起来像这样:
innodb_file_per_table=1
2.将MySQL数据库数据存储在单独的分区上
注 :此设置只与MySQL的作品,但不能与MariaDB的。 有时OS读/写可能会降低MySQL服务器的性能,特别是如果位于同一个硬盘驱动器上。相反,我建议使用单独的硬盘驱动器(最好是SSD)的MySQL服务。 要完成,您需要将新驱动器附加到计算机/服务器。对于这篇文章的目的,我将认为驱动器将成为下 的/ dev / sdb的 。 下一步是准备新的驱动器:# fdisk /dev/sdb现在按 “N”来创建新的分区。 接着按 “P”,使新的主分区。 在这之后,从 1-4设置的分区号。之后,您将选择分区大小。在这里输入。在下一步中,您将需要配置分区的大小。 如果您希望使用整个磁盘,请再次输入。否则,您可以手动设置新分区的大小。准备好后按 “W”写的变化。现在我们需要为我们的新分区创建一个文件系统。这可以很容易地完成:
# mkfs.ext4 /dev/sdb1现在我们将在一个文件夹中挂载我们的新分区。我有一个名为我的文件夹“ 固态硬盘 ”,并在根目录下创建:
# mkdir /ssd/我们准备安装刚刚在新文件夹中创建的新分区:
# mount /dev/sdb1 /ssd/您可以通过添加下面一行在 / etc / fstab文件在启动时进行安装。
/dev/sdb1 /ssd ext3 defaults 0 0现在您已准备好将MySQL移动到新磁盘。首先停止MySQL服务:
# service mysqld stop我建议你停止Apache / nginx以及防止任何尝试写入数据库:
# service httpd stop # service nginx stop现在复制新驱动器中的整个MySQL目录:
# cp /var/lib/mysql /ssd/ -Rp这可能需要一段时间,具体取决于MySQL数据库的网站。一旦这个过程完成,重命名MySQL目录:
# mv /var/lib/mysql /var/lib/mysql-backup接下来我们将创建一个符号链接。
# ln -s /ssd/mysql /var/lib/mysql现在您已经准备好启动MySQL和Web服务:
# service mysqld start # service httpd start # service nginx start此时,您的MySQL数据库将从新驱动器访问。