本节讨论数据库服务器的优化技术,主要是处理系统配置而不是调整SQL语句。本节中的信息适用于想要确保所管理服务器之间的性能和可伸缩性的DBA。为开发人员构建包括设置数据库在内的安装脚本;以及自己运行MySQL进行开发,测试等工作的人们,他们希望最大限度地提高自己的生产力。
优化MySQL 服务器
- 优化磁盘 I / O
- 本节介绍了可以将更多,更快的存储硬件投入数据库服务器时配置存储设备的方法。有关优化InnoDB配置以提高I / O性能的信息,请参见“优化InnoDB磁盘I / O”。磁盘寻道是巨大的性能瓶颈。当数据量开始增长到无法进行有效缓存时,此问题将变得更加明显。对于大型数据库,您或多或少地随机访问数据,可以
- 使用符号链接
- 您可以将数据库或表从数据库目录移动到其他位置,并用指向新位置的符号链接替换它们。例如,您可能要这样做,以便将数据库移动到具有更多可用空间的文件系统中,或者通过将表分散到不同的磁盘来提高系统的速度。对于InnoDB表,请按照“在外部创建表”中的说明,使用语句的DATA DIRECTORY子句CREAT
- 优化内存使用
- MySQL如何使用内存MySQL分配缓冲区和高速缓存以提高数据库操作的性能。默认配置旨在允许MySQL服务器在具有大约512MB RAM的虚拟机上启动。您可以通过增加某些与缓存和缓冲区相关的系统变量的值来提高MySQL性能。您还可以修改默认配置,以在内存有限的系统上运行MySQL。下面的列表描述了M
- 优化网络使用
- MySQL如何处理客户端连接本节介绍MySQL服务器如何管理客户端连接的各个方面。网络接口和连接管理器线程客户端连接线程管理连接卷管理管理连接管理网络接口和连接管理器线程该服务器能够侦听多个网络接口上的客户端连接。连接管理器线程在服务器侦听的网络接口上处理客户端连接请求:在所有平台上,一个管理器线程
- 资源组
- MySQL支持创建和管理资源组,并允许将服务器中运行的线程分配给特定的组,以便线程根据该组可用的资源执行。使用组属性可以控制其资源,以启用或限制组中线程的资源消耗。DBA可以根据不同的工作负载修改这些属性。当前,CPU时间是一种可管理的资源,以“虚拟CPU ”的概念表示,该术语包括CPU内核,超线程
- 评估效果(基准测试)
- 要衡量性能,请考虑以下因素:无论您是在安静的系统上测量单个操作的速度,还是一段时间内一组操作(“工作负荷”)如何工作。通过简单的测试,您通常可以测试更改一个方面(配置设置,表上的索引集,查询中的SQL子句)如何影响性能。基准测试通常是长期运行且精心设计的性能测试,其结果可能会指示高级选择,例如硬件和