`
stephen830
  • 浏览: 3010542 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

加快MySQL服务器运行速度的三种方法

 
阅读更多

 

加快MySQL服务器运行速度的三种方法

 

如今,社会讲求的就是快速,什么事都要有效率,当然MySQL服务器也是要有效率。开发人员不断地开发和部署使用LAMP(Linux?、Apache、MySQL 和 PHP/Perl)架构的应用程序。但是,服务器管理员常常对应用程序本身没有什么控制能力,因为应用程序是别人编写的。本文重点讨论为实现最高效率而对数据库层进行的调优。
  有3种方法可以加快MySQL服务器的运行速度,效率从低到高依次为:


  第一种方法时替换有问题的硬件。对MySQL进程的设置进行调优。对查询进行优化。
  替换有问题的硬件通常是我们的第一考虑,主要原因是数据库会占用大量资源。不过这种解决方案也就仅限于此了。实际上,您通常可以让中央处理器(CPU)或磁盘速度加倍,也可以让内存增大4到8倍。


  第二种方法是对MySQL服务器(也称为mysqld)进行调优。
  对这个进程进行调优意味着适当地分配内存,并让 mysqld 了解将会承受何种类型的负载。加快磁盘运行速度不如减少所需的磁盘访问次数。类似地,确保 MySQL 进程正确操作就意味着它花费在服务查询上的时间要多于花费在处理后台任务(如处理临时磁盘表或打开和关闭文件)上的时间。对mysqld进行调优是本文的重点。
  最好的方法是确保查询已经进行了优化。这意味着对表应用了适当的索引,查询是按照可以充分利用MySQL功能的方式来编写的。尽管本文并没有包含查询调优方面的内容(很多著作中已经针对这个主题进行了探讨),不过它会配置mysqld来报告可能需要进行调优的查询。
  虽然已经为这些任务指派了次序,但是仍然要注意硬件和mysqld的设置以利于适当地调优查询。机器速度慢也就罢了,我曾经见过速度很快的机器在运行设计良好的查询时由于负载过重而失败,因为mysqld被大量繁忙的工作所占用而不能服务查询。


  第三种方法是记录慢速查询
  在一个SQL服务器中,数据表都是保存在磁盘上的。索引为服务器提供了一种在表中查找特定数据行的方法,而不用搜索整个表。当必须要搜索整个表时,就称为表扫描。通常来说,您可能只希望获得表中数据的一个子集,因此全表扫描会浪费大量的磁盘I/O,因此也就会浪费大量时间。当必须对数据进行连接时,这个问题就更加复杂了,因为必须要对连接两端的多行数据进行比较。
  当然,表扫描并不总是会带来问题;有时读取整个表反而会比从中挑选出一部分数据更加有效(服务器进程中查询规划器用来作出这些决定)。如果索引的使 用效率很低,或者根本就不能使用索引,则会减慢查询速度,而且随着服务器上的负载和表大小的增加,这个问题会变得更加显著。执行时间超过给定时间范围的查询就称为慢速查询。
  您可以配置 mysqld 将这些慢速查询记录到适当命名的慢速查询日志中。管理员然后会查看这个日志来帮助他们确定应用程序中有哪些部分需要进一步调查。清单1给出了要启用慢速查询日志需要在my.cnf中所做的配置。
  清单1.启用MySQL慢速查询日志
  以下为引用的内容:
  [mysqld]; enable the slow query log, default 10 secondslog-slow-queries; log queries taking longer than 5 secondslong_query_time = 5; log queries that don’t use indexes even if they take less than long_query_time; MySQL 4.1 and newer onlylog-queries-not-using-indexes
  这三个设置一起使用,可以记录执行时间超过5秒和没有使用索引的查询。请注意有关 log-queries-not-using-indexes 的警告:您必须使用 MySQL 4.1 或更高版本。慢速查询日志都保存在 MySQL 数据目录中,名为 hostname-slow.log。如果希望使用一个不同的名字或路径,可以在my.cnf中使用log-slow-queries = /new/path/to/file 实现此目的。
  阅读慢速查询日志最好是通过mysqldumpslow命令进行。指定日志文件的路径,就可以看到一个慢速查询的排序后的列表,并且还显示了它们在日志文件中出现的次数。一个非常有用的特性是mysqldumpslow在比较结果之前,会删除任何用户指定的数据,因此对同一个查询的不同调用被计为一次;这可以帮助找出需要工作量最多的查询。

 

 

分享到:
评论

相关推荐

    MySQL-服务器调优.doc

    本文将讨论三种方法来加快 MySQL 服务器的运行速度:替换有问题的硬件,对 MySQL 进程的设置进行调优和对查询进行优化。 替换有问题的硬件 替换有问题的硬件是提高 MySQL 服务器性能的第一考虑。数据库会占用大量...

    优化MySQL数据库查询的三种方法简介

    本文将探讨三种行之有效的MySQL查询优化方法:合理使用索引、通过EXPLAIN分析查询以及调整MySQL内部配置。 首先,索引作为提高数据库查询效率的利器,在MySQL数据库管理中占据着举足轻重的地位。索引相当于书的目录...

    如何对MySQL服务器进行调优

    如今,开发人员不断地开发和部署使用 LAMP(Linux?...但是,服务器管理员常常对应用程序本身没有什么控制能力,因为应用程序是别人编写的。这份 共三部分的系列文章将讨论许多...有3种方法可以加快MySQL服务器的运行速度

    解析如何加快mysql编译的速度

    为了优化这个过程,我们可以采取一些策略来加快MySQL的编译速度。下面将详细讨论这些方法。 首先,我们来看一个常见的优化选项:在编译时移除调试信息。通过添加`–without-debug`参数,我们可以避免编译器生成调试...

    高性能MySQL(第3版).part2

    目录 推荐序 前言 第1章MySQL架构与历史1 1.1MySQL逻辑架构1 1.1.1连接管理与安全性...附录BMySQL服务器状态655 附录C大文件传输683 附录DEXPLAIN687 附录E锁的调试703 附录F在MySQL上使用Sphinx713 索引739

    mysql优化笔记+资料

    3. 使用MySQL Tuner或mytop等工具自动或手动调整MySQL服务器参数。 这些笔记涵盖了MySQL优化的主要方面,包括查询优化、SQL编写技巧、数据库设计、存储引擎选择、服务器配置、硬件升级、定期维护以及使用各种工具...

    MySQL 4G内存服务器配置优化

    MySQL 4G内存服务器配置优化是提升Web架构性能的关键步骤,因为MySQL作为数据库管理系统,其性能直接影响了Web应用的速度和承载能力。优化MySQL主要涉及调整系统参数,特别是配置文件my.cnf中的设置。以下是一些对...

    mysql5.0免安装标准版,可复制任何路径下运行

    压缩包中的`Start.bat`可能是用于启动MySQL服务的批处理文件,`readme.txt`可能包含了使用指南和注意事项,而`mysql`可能是包含MySQL服务器和客户端程序的文件夹。 总的来说,MySQL 5.0免安装标准版为用户提供了...

    ubuntu/linux下mysql数据库安装配置

    下面我们将详细介绍在Ubuntu上安装MySQL的三种方法,并提供有关配置和管理MySQL的要点。 首先,我们来看三种安装MySQL的方式: 1. **从Ubuntu软件仓库在线安装**: 使用`sudo apt-get install mysql-server`命令...

    mysql5.5免安装版

    同时,复制也支持多线程,使得从服务器可以并行处理主服务器的binlog事件,加快了数据同步的速度。 除此之外,MySQL 5.5增强了安全性,包括更精细的权限控制、加密连接支持以及改进的审计日志功能。这些改进使得...

    mysql-5.5.25-win32

    用户可以解压后运行其中的“mysql-5.5.25-win32.msi”文件来安装MySQL服务器、客户端工具和其他相关组件。msi文件是一种Microsoft Installer格式,通常用于软件的安装和卸载,确保安装过程的标准化和可管理性。 ...

    苹果CMS程序是一套采用PHP+MYSQL环境下运行的完善而强大的快速建站系统

    程序体积小->优化程序代码,运行速度快->高效的缓存处理,只要普通的虚拟主机就可以完美搭建起来,建站成本非常低。仿MVC模板分离,内置标签,自定义函数标签接口,强大的自定义采集功能,只要你会HTML就可以轻松...

    MySQL支持库

    MySQL支持库是一个重要的数据库管理系统(DBMS)组件,它包含了MySQL服务器运行所需的各类库文件。这些库文件在MySQL的正常运作中起到至关重要的作用,它们提供了数据存储、查询处理、事务管理、安全性以及与其他...

    mysql最经典优化配置

    - **skip-name-resolve**:禁止DNS解析,加快连接处理速度,但要求使用IP地址进行远程主机授权。 - **back_log**:设置TCP/IP连接的侦听队列大小,可以根据系统负载和操作系统限制适当调整。 - **key_buffer_size**...

    mysql-5.5.57-winx64.zip

    MySQL是世界上最受欢迎的开源数据库系统之一,尤其在Web应用程序中被广泛应用。5.5.57是MySQL的一个重要版本,提供了稳定性和性能的优化。...通过这个压缩包,用户可以直接获取到安装文件,快速搭建自己的MySQL服务器。

    mysql-5.5.27-winx64.rar

    5. **Parallel Replication**:MySQL 5.5引入了多线程复制,使得从库可以并行应用主库的事件,从而加快了复制速度。 6. **Thread Pool**:引入了线程池,可以限制同时处理的客户端连接数量,减少资源消耗,提高...

    mysql5.5官方最新开发手册

    错误日志则记录了服务器运行中的错误信息。 3. 备份与恢复:介绍了mysqldump工具进行数据备份,以及如何使用备份文件恢复数据。 4. 表维护:包括检查表的完整性、修复损坏的表、优化表结构和分析统计信息等。 五、...

    mysql-8.0.19.0安装教程.zip

    您可以找到第三方源或镜像站点以加快下载速度,如“mysql-installer-community-8.0.19.0.msi”文件,这是一个Windows Installer包,用于安装MySQL Server及相关的工具。 2. **MySQL Installer**: "mysql-installer-...

    mysql 5.6 win32

    在安装方面,`mysql-5.6.10-win32.msi`文件是MySQL 5.6.10的Windows安装程序,使用Microsoft Installer(MSI)技术,提供了一种简单易用的方式来安装和配置MySQL服务器。安装过程中,用户可以选择安装类型,如典型、...

Global site tag (gtag.js) - Google Analytics