15个有用的MySQL / MariaDB性能调优和优化提示

本文将向您展示一些基本的,有用的提示,如何优化和微调MySQL / MariaDB的性能,以加快MySQL / MariaDB查询速度。

MySQL是一个功能强大的开源关系数据库管理系统或简称RDBMS。 它在1995年被释放(20岁)。 它采用结构化查询语言这可能是在数据库中管理内容最流行的选择。 最新的MySQL版本是25年6月5日 ,被释放2015年5月29日 。 关于MySQL的一个有趣的事实是,这个名字来自迈克尔·维德纽斯的 (MySQL的创造者)的女儿的事实 尽管有很多关于MySQL有趣的事实,这篇文章的目的是告诉你一些有用的实践来帮助你管理你的MySQL服务器。
MySQL性能调优

MySQL性能调优

2009年 4月MySQL的项目是由甲骨文收购。 因此叫做MariaDB的一个MySQL社区叉子已创建。创建fork的主要原因是使项目在通用公共许可证下免费。 今天,MySQLMariaDB的是一个最(如果不是最)用于Web应用程序如WordPress,Joomla的Magento和其他经常使用的RDBMS。 本文将向您介绍一些基本的,有用的提示,如何优化MySQL / MariaDB的性能。请记住,本文假设您已经安装了MySQL或MariaDB。如果您仍然想知道如何在系统上安装它们,您可以按照我们的广泛指南:
  1. 在RHEL / CentOS 7上安装LAMP
  2. 在Fedora 22上安装LAMP
  3. 在Ubuntu 15.04上设置LAMP
  4. 在Debian 8上安装MariaDB
  5. 在Gentoo Linux上安装MariaDB
  6. 在Arch Linux上安装MariaDB
重要提示 :在我们开始之前-不接受这个建议盲目。每个MySQL设置是唯一的,需要额外的思考,在做任何更改之前。 你需要知道的事情:
  1. MySQL的/ MariaDB的配置文件位于/etc/my.cnf 。每次修改此文件时,您将需要重新启动MySQL服务,以便新更改可以生效。
  2. 写这篇文章的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数据库将从新驱动器访问。