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>;
第六章 优化服务器设置--高性能MySQL 施瓦茨