MYSQL的运行配置_MySQL优化: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";

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值