码迷,mamicode.com
首页 > 数据库 > 详细

MySQL优化:mysql服务运行参数的设置

时间:2016-06-17 19:45:38      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:mysql   运行参数   

可以用管理员登录在mysql>命令行下设置,设置是临时的。

如果希望永久生效,则要修改/etc/my.cnf文件中的[mysqld]下相关参数:

#vim /ect/my.cnf

[mysqld]

……

下面详细讲解相关运行参数的设置:

1、并发连接数设置    max_connections

最大并发连接数的设置公式:曾经有过的最大连接数/要设置的最大连接数*100%约等于85%时是合适的,15%应付突发访问量

mysql> show  variables like  "max_connections";

show global status like“max_used_connections”;   //查看曾经有过的最大连接数

flush status//清空曾经有过的最大连接数,重新计数

临时设置:

mysql> set global  max_connections=300;

永久设置:

Vim /etc/my.cnf

[mysqld]

max_connections=300

2、连接数据库服务器超时时间的设置   connect_timeout wait_timeout

connect_timeout=10 ()  在获取连接时,等待握手的超时时间,只在登录时有效

wait_timeout=28800(秒)服务器在关闭一个连接上等待行动的秒数,默认28800秒断开连接的等待时间

查询:showvariables like “connect_timeout”

临时设置:setglobal connect_timeout=7//过长会消耗系统资源,过短会频繁响应请求也会耗系统资源,一般使用默认值

查询:showvariables like “wait_timeout”

临时设置:set  wait_timeout=3600//不能过短,否则客户端数据没有读完就会断开连接

3、设置可以重复使用的保存在缓存中线程的数量  thread_cache_size

thread_cache_size    //缓存线程可以加快访问速度,不用等用户来访问的时候临时开放线程。如果访问量小,线程数大的话会浪费资源,访问量大线程数小访问会慢,应设置合适的线程数。 

查询:showvariables like “thread_cache_size”      默认:9

临时设置:setglobal  thread_cache_size=8

Show global status like “thread%”;

+-------------------+-------+

| Variable_name     | Value |

+-------------------+-------+

| Threads_cached    | 1    |   threads_cacheed_size的值

| Threads_connected | 1     |   已有的连接数

| Threads_created   | 2    |   创建过的线程数

| Threads_running   | 1    |   正在运行着的连接数

+-------------------+-------+

Threads_connected Threads_created值的差距过大不好,说明“thread_cache_size值设置太小了。

4、设置所有线程打开表的数量   table_open_cache   默认:2000

查看:mysql>show variables like "table_open_cache";

临时设置:mysql>set global table_open_cache=50;

mysql> show global status like"open%table%";

+--------------------------+-------+

| Variable_name         | Value |

+--------------------------+-------+

| Open_table_definitions   | 3  |  

| Open_tables            | 3   |   打开表的数量

| Opened_table_definitions | 73   |

| Opened_tables       | 73 |打开过的表的数量,此值过大,table_open_cache值可能太小

+--------------------------+-------+

 table_open_cache 值的设置:Open_tables /table_open_cache*100%<=95%时是合理的

5、设置索引缓冲区的大小  key_buffer_size   默认: 8388608字节=8M

查看:mysql>show variables like "key_buffer_size";

mysql> show global status like"key_read%";

+-------------------+-------+

| Variable_name   | Value |

+-------------------+-------+

| Key_read_requests | 8  |   索引读取请求总数

| Key_reads       | 4 |   在索引缓冲区中没有找到直接从硬盘读取的索引数量

+-------------------+-------+

key_buffer_size值的设置: Key_reads/Key_read_requests *100%  此比率值越小越好

6、每个需要进行排序的线程分配给大小的缓冲区,增加此值加速order by group by操作    sort_buffer_size

查看:mysql>show variables like "sort_buffer_size";  默认:256K

7、从数据表顺序读取数据的读操作保留的缓存区的长度 read_buffer_size    默认:128K

mysql> show variables like "read_buffer_size";

8、按某种特定顺序(比如使用里order by子句的查询)输出查询结果

read_rnd_buffer_size    默认:512K

select * from  mysql.usertab  order by  age;

mysql>show variables like "read_rnd_buffer_size"; 


本文出自 “IT技术学习” 博客,请务必保留此出处http://learningit.blog.51cto.com/9666723/1790376

MySQL优化:mysql服务运行参数的设置

标签:mysql   运行参数   

原文地址:http://learningit.blog.51cto.com/9666723/1790376

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!