首页 > 代码库 > 第六章 优化服务器设置--高性能MySQL 施瓦茨

第六章 优化服务器设置--高性能MySQL 施瓦茨

MySql的默认配置不适用于使用大量资源,因为其通用性很高。

不要期望改变配置文件会带来巨大得性能提升。提升大小取决于工作负载,通常可以通过选择适当的配置参数得到两到三倍得性能提升。在这时候,性能提升就是增量的。为了更大得提升,通常要检查服务器架构,查询及应用程序的架构。

6.1配置基础知识

  1 首先要知道MySQL从什么地方获取配置信息。(可以用启动脚本 --defaults-file=配置文件位置)

  2 配置文件被分成了若干部分,每部分第一行都是 [程序名]

mysql程序会读取和程序名同名的部分,并且许多客户端会读取client部分,这儿也是放置通用设置的地方。

服务器通常会读取mysqld部分。

6.1.1 语法,作用域及动态性

  配置设置都是小写的,使用下划线或破折号分割单词。

  配置设置有几种作用域。一些设置在整个服务器内都有效(全局域);另外一些针对每个连接(会话域);还有一些只对对象有效。许多会话域的变量和全局变量是一样的,可以认为是全局变量提供了默认值。如果修改了会话域变量的值,它只会在当前的连接内有效,连接关闭后值就消失了。

  值得注意的例子:

  * query_cache_size变量是全局性的

  * sort_buffer_size变量有全局性的默认值,但是可以在会话中设置

  * join_buffer_size有全局的默认值,并且可以在会话中进行设置。

除了在配置文件中设置变量,也可以在服务器运行的时候对某些值(不是全部值)进行设置。MySQL把它们叫做动态变量。

eg:

mysql> SET sort_buffer_size = <value>;

mysql> SET GLOBAL sort_buffer_size = <value>;