mysql优化连接数

很多开发人员都会遇见”MySQL: ERROR 1040: Too many connections”的异常情况,造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力;另一种原因就是MySQL配置文件中max_connections值过小

首先,我们来查看mysql的最大连接数:

?


1

2

3

4

5

6

7

mysql> show variables like ‘%max_connections%‘;

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

| Variable_name  | Value |

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

| max_connections | 151  |

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

1 row in set (0.00 sec)

其次,查看服务器响应的最大连接数:

?


1

2

3

4

5

6

7

mysql> show global status like ‘Max_used_connections‘;

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

| Variable_name    | Value |

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

| Max_used_connections | 2   |

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

1 row in set (0.00 sec)

可以看到服务器响应的最大连接数为2,远远低于mysql服务器允许的最大连接数值。

对于mysql服务器最大连接数值的设置范围比较理想的是:服务器响应的最大连接数值占服务器上限连接数值的比例值在10%以上,如果在10%以下,说明mysql服务器最大连接上限值设置过高。

?


1

Max_used_connections / max_connections * 100% = 2/151 *100% ≈ 1%

我们可以看到占比远低于10%(因为这是本地测试服务器,结果值没有太大的参考意义,大家可以根据实际情况设置连接数的上限值)。

再来看一下自己 linode VPS 现在(时间:2013-11-13 23:40:11)的结果值:

?


1

2

3

4

5

6

7

8

9

10

11

12

13

14

mysql> show variables like ‘%max_connections%‘;

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

| Variable_name  | Value |

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

| max_connections | 151  |

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

1 row in set (0.19 sec)

mysql> show global status like ‘Max_used_connections‘;

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

| Variable_name    | Value |

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

| Max_used_connections | 44  |

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

1 row in set (0.17 sec)

这里的最大连接数占上限连接数的30%左右。

上面我们知道怎么查看mysql服务器的最大连接数值,并且知道了如何判断该值是否合理,下面我们就来介绍一下如何设置这个最大连接数值。

方法1:

?


1

2

3

4

5

6

7

8

9

mysql> set GLOBAL max_connections=256;

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like ‘%max_connections%‘;

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

| Variable_name  | Value |

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

| max_connections | 256  |

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

1 row in set (0.00 sec)

方法2:

修改mysql配置文件my.cnf,在[mysqld]段中添加或修改max_connections值:

max_connections=128
重启mysql服务即可。

查看当前连接的数量
show status;
Threads_connected 当前连接数
Threads_created   创建的连接数

时间: 2024-10-21 00:05:15

mysql优化连接数的相关文章

mysql优化连接数防止访问量过高的方法

很多开发人员都会遇见"MySQL: ERROR 1040: Too many connections"的异常情况,造成这种情况的一种原因是访问量过高,MySQL服务器抗不住,这个时候就要考虑增加从服务器分散读压力:另一种原因就是MySQL配置文件中max_connections值过小. 首先,我们来查看mysql的最大连接数: mysql>show variables like '%max_connections%'; + -----------------+-------+ |

mysql优化-mysql最大连接数

########################### 修改mysql最大连接数 ############################### MYSQL数据库安装完成后,默认最大连接数是100, 一般生产环境的论坛或网站是远远不够的,以下提供两种修改MYSQL最大连接数的方法 ---------------------- 方法1:在线修改mysql最大连接数 --------------------------- 特点:对于mysql在使用中无法停机重启的情况,可以在mysql运行情况下修改

Mysql优化(转)

Mysql优化主要通过执行计划,索引,sql语句,调整mysql内部配置 (http://blog.chinaunix.net/uid-11640640-id-3426908.html) 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 1)      max_connections 2)      back_log 3)      interactive_timeout 4)  

小菜鸟mysql优化解决方案

根据小菜鸟的个人习惯,自己的编写的一套MYSQL优化方案,感觉还是有点儿菜,望大家谅解,不足之处,请大神们互动! #mysql优化解决方案 #公共参数默认值: max_connections = 151 #同事处理多大连接数,推荐设置最大连接数是上限连接数的80%左右 sort_buffer_size = 2M #查询排序时缓冲区大小,只对order by和group by起作用,可增大此值为16M open_files_limit = 1024 #打开文件数限制,如果show global s

mysql优化技巧

mysql 数据库优化 包括 a.表的设计合理化(符合3NF) b.添加适当索引(index[4种:普通索引 主键索引 唯一索引unique  全文索引]) c.分表技术(水平分割,垂直分割) d.读写[写:update/delete/add]分离 e.存储过程[模块化编程 可以提高速度] 数据库的三层结构 orale MySQL db2 sql server php程序通过dbms(数据库管理系统)操作数据库文件,数据库执行相关操作返回给dbms,然后再返回给PHP dbms 首先编译PHP代

mysql优化-数据库优化、SQL优化

我有一张表w1000,里面有1000万条数据,这张表结构如下:CREATE TABLE `w1000` ( `id` varchar(36) NOT NULL, `name` varchar(10) DEFAULT NULL, `age` int(3) DEFAULT NULL, `money` double(8,2) DEFAULT NULL, `address` varchar(100) DEFAULT NULL, `create_date` datetime(3) DEFAULT NULL

MySQL优化要点

MySQL优化要点     硬件选型优化 CPU 主频高,支持多线程 1.2.  磁盘 SAS磁盘(RAID10)或SSD磁盘(RAID1) 1.3.    主板 修改主板配置参数,打开磁盘写缓存,关闭磁盘读缓存,以免影响数据插入速度;尽量使用独立RAID,不用主板集成RAID卡 1.4.      网卡 主机多网卡BOND绑定,保证网络无故障;配备千兆速率以上网卡设备. 1.5.    内存 配备多通道高频内存,容量至少16G以上,最好是数据库数据内存两倍. 部署以及配置参数优化 部署规范 统

mysql优化随笔

MySQL 配置: 清空查询缓存 reset querry cache: 当写入时,使用 innodb_flush_method=O_DIRECT 来避免双缓冲. 不要混用 innodb_thread_concurrency 和 thread_concurrency 参数– 这2个值是不兼容的. 保持 thread_cache 在一个相对较高的数字,大约 16 – 防止打开连接时缓慢. 使用skip-name-resolve参数 – 去掉 DNS 查找. 增大tmp_table_size值,以防

MySQL优化思路,以及解决方案

mysql优化索引和配置,以及慢查询分析 s首先基本的思路 1)性能瓶颈定位 使用show命令. 慢查询日志. explain分析查询. profiling分析查询. 2)索引及查询优化 3)配置优化 MySQL数据库常见的两个瓶颈cpu.i/o: CPU主要在饱和的时候发生在数据装入内存或磁盘上读取数据的时候 i/o发生在装入数据远大于内存容量的时候,如果应用分布在网络上,那么查询量相当大的网络瓶颈,我们可以通过mpstat.iostat.vmstat.sar等命令查看系统的性能状态 例如:m