mysql中如何mysql 查看连接数最大连接数max

页面导航:
→ 正文内容 MySQL中的max()函数
MySQL中的max()函数使用教程
这篇文章主要介绍了MySQL中的max()函数使用教程,是学习MySQL入门的基础知识,需要的朋友可以参考下
MySQL的max()函数是用来找出一个记录集中的最大值记录。
要了解MAX功能考虑的EMPLOYEE_TBL表具有以下记录:
mysql& SELECT * FROM employee_
+------+------+------------+--------------------+
| name | work_date | daily_typing_pages |
+------+------+------------+--------------------+
1 | John |
3 | Jack |
3 | Jack |
4 | Jill |
5 | Zara |
5 | Zara |
+------+------+------------+--------------------+
7 rows in set (0.00 sec)
现在,假设根据上述要取表中daily_typing_pages的最大值值,简单地使用下面的命令:
mysql& SELECT MAX(daily_typing_pages)
-& FROM employee_
+-------------------------+
| MAX(daily_typing_pages) |
+-------------------------+
+-------------------------+
1 row in set (0.00 sec)
可以找到所有的记录,最大值为每名使用GROUP BY子句如下:
mysql& SELECT id, name, work_date, MAX(daily_typing_pages)
-& FROM employee_tbl GROUP BY
+------+------+------------+-------------------------+
| name | work_date | MAX(daily_typing_pages) |
+------+------+------------+-------------------------+
3 | Jack |
4 | Jill |
1 | John |
5 | Zara |
+------+------+------------+-------------------------+
5 rows in set (0.00 sec)
也可以使用MIN函数及MAX功能找到的最低值,试试下面的例子:
mysql& SELECT MIN(daily_typing_pages) least, MAX(daily_typing_pages) max
-& FROM employee_
+-------+------+
| least | max |
+-------+------+
100 | 350 |
+-------+------+
1 row in set (0.01 sec)
您可能感兴趣的文章:
上一篇:下一篇:
最 近 更 新
热 点 排 行
12345678910当前位置:&&
mysql中如何查看最大连接数(max_connections)和修改最大连接数
&&&&发布时间:&&
以下的文章主要是向大家介绍的是MySQL最大连接数的修改,我们大家都知道MySQL最大连接数的默认值是100, 这个数值对于并发连接很多的数据库的应用是远不够用的,当连接请求大于默认连接数后,就会出现无...
&& & &以下的文章主要是向大家介绍的是MySQL最大连接数的修改,我们大家都知道MySQL最大连接数的默认值是100, 这个数值对于并发连接很多的数据库的应用是远不够用的,当连接请求大于默认连接数后,就会出现无法连接数据库的错误,因此我们需要把它适当调大一些。在使用MySQL数据库的时候,经常会遇到这么一个问题,就是“Can not connect to MySQL server. Too many connections”-mysql 1040错误,这是因为访问MySQL且还未释放的连接数目已经达到MySQL的上限。通常,mysql的最大连接数默认是100, 最大可以达到16384。(本文由搜集整理)& & 常用的修改最大连接数的最常用的两种方式如下:& & 第一种:命令行查看和修改最大连接数(max_connections)。&&&&&mysql&-uuser&-ppassword(命令行登录MySQL)
&&&&mysql&show&variables&like&'max_connections';(查可以看当前的最大连接数)
&&&&msyql&set&global&max_connections=1000;(设置最大连接数为1000,可以再次查看是否设置成功)
&&&&mysql&exit& & 这种方式有个问题,就是设置的最大连接数只在mysql当前服务进程有效,一旦mysql重启,又会恢复到初始状态。因为mysql启动后的初始化工作是从其配置文件中读取数据的,而这种方式没有对其配置文件做更改。& & 第二种:通过修改配置文件来修改mysql最大连接数(max_connections)。& & 这种方式说来很简单,只要修改MySQL配置文件my.ini 或 my.cnf的参数max_connections,将其改为max_connections=1000,然后重启MySQL即可。但是有一点最难的就是my.ini这个文件在哪找。通常有两种可能,一个是在安装目录下,另一种是在数据文件的目录下,安装的时候如果没有人为改变目录的话,一般就在C:/ProgramData/MySQL往下的目录下,linux系统中一般在/etc目录下。& 其他需注意的:& &在编程时,由于用MySQL语句调用数据库时,在每次之执行语句前,会做一个临时的变量用来打开数据库,所以你在使用MySQL语句的时候,记得在每次调用完MySQL之后就关闭MySQL临时变量。& & 另外对于访问量大的,可以考虑直接写到文本中,根据预测的访问量,先定义假若是100个文件文件名,需要的时候,再对所有文本文件中的数据进行分析,再导入数据库。&
169IT站内文章除注明原创外,均为转载,整理或搜集自网络.欢迎任何形式的转载,转载请注明出处.转载请注明:文章转载自:[]本文标题:
本类别最新文章推荐:
特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!
(C)2012-,站长邮箱:www_169it_(请将#改为@)查看: 4085|回复: 1
今天遇到了关于Sql Server最大连接数(Max Pool Size)的配置问题
TA的每日心情开心4&小时前签到天数: 411 天[LV.9]以坛为家II已加入:&已加入:&
今天遇到了关于Sql Server最大连接数(Max Pool Size)的配置问题
Timeout expired 超时时间已到. 达到了最大池大小 错误及Max Pool Size设置
参考数据库链接串: [code=sql]&add key=&data& value=&server=192.168.1.123; Port=3306; uid= pwd=database=pooling=min pool size=5;max pool size=512;connect timeout = 20; &/& [/code]查看应用程序池占用数量:[code=sql]select * from sysprocesses where dbid= db_id('数据库名')[/code]Max Pool Size:如果未设置则默认为100,理论最大值为32767。最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。在等待队列中,默认等待与服务器的连接的时间为15秒。中文错误:超时时间已到。超时时间已到,但是尚未从池中获取连接。出现这种情况可能是因为所有池连接均在使用,并且达到了最大池大小。英文错误:Timeout expired.&&The timeout period elapsed prior to obtaining a connection from the pool.&&This may have occurred because all pooled connections were in use and max pool size was reached.
问题描述:我们获取连接超过连接池最大值时产生如上异常。通常连接池最大值为100。当我们获取连接超过最大值时,ADO.NET等待连接池返回连接而超时,这样将抛出如上异常
解决办法:首先要做的是在我们使用连接后立即关闭连接。如果没有关闭连接那么连接将保存到连接池中知道GC来销毁。这种情况下你以为连接池没有到达最大值但实际上连接池已经到达了最大值 其次我们可以通过连接字符串中的Max Pool Size = N;来动态扩大连接池中的连接最大数量。
也就是在connectionString中如果未指定max pool size的值,则max pool size=100,当访问人员同时连接数据库的数量为101人时,则等待SqlConnection.ConnectionTimeout设置的时间(默认是15 秒)后,还是没有可用的Connection则会出现上面的错误。
当我们设置为:&Server=(local); Integrated Security=SSPI; Database=N Max Pool Size=512; Min Pool Size=5&&&时。则访问人员同时连接数据库的数量为513时,则等待SqlConnection.ConnectionTimeout设置的时间(默认是15 秒)后,还是没有可用的Connection则 就会出现上面的错误。
-& && && & Connection Pool 是什么呢 ?
每当程序需要读写数据库的时候。Connection.Open()会使用ConnectionString连接到数据库,数据库会为程序建立 一个连接,并且保持打开状态,此后程序就可以使用T-SQL语句来查询/更新数据库。当执行到Connection.Close()后,数据库就会关闭当 前的连接。很好,一切看上去都是如此有条不紊。
但是如果我的程序需要不定时的打开和关闭连接,(比如说 ASP.Net 或是 Web Service ),例如当Http Request发送到服务器的时候、,我们需要打开Connection 然后使用Select* from Table 返回一个DataTable/DataSet给客户端/浏览器,然后关闭当前的Connection。那每次都Open/Close Connection 如此的频繁操作对于整个系统无疑就成了一种浪费。
ADO.Net Team就给出了一个比较好地解决方法。将先前的Connection保存起来,当下一次需要打开连接的时候就将先前的Connection 交给下一个连接。这就是Connection Pool。
-& && && & Connection Pool 如何工作的?
首先当一个程序执行Connection.open()时候,ADO.net就需要判断,此连接是否支持Connection Pool (Pooling 默认为True),如果指定为False, ADO.net就与数据库之间创建一个连接(为了避免混淆,所有数据库中的连接,都使用”连接”描述),然后返回给程序。
如果指定为 True,ADO.net就会根据ConnectString创建一个Connection Pool,然后向Connection Pool中填充Connection(所有.net程序中的连接,都使用”Connection”描述)。填充多少个Connection由Min Pool Size (默认为0)属性来决定。例如如果指定为5,则ADO.net会一次与SQL数据库之间打开5个连接,然后将4个Connection,保存在 Connection Pool中,1个Connection返回给程序。
当程序执行到Connection.close() 的时候。如果Pooling 为True,ADO.net 就把当前的Connection放到Connection Pool并且保持与数据库之间的连接。
同时还会判断Connection Lifetime(默认为0)属性,0代表无限大,如果Connection存在的时间超过了Connection LifeTime,ADO.net就会关闭的Connection同时断开与数据库的连接,而不是重新保存到Connection Pool中。(这个设置主要用于群集的SQL 数据库中,达到负载平衡的目的)。如果Pooling指定为False,则直接断开与数据库之间的连接。
然后当下一次Connection.Open() 执行的时候,ADO.Net就会判断新的ConnectionString与之前保存在Connection Pool中的Connection的connectionString是否一致。
(ADO.Net会将ConnectionString转成二进制流,所 以也就是说,新的ConnectionString与保存在Connection Pool中的Connection的ConnectionString必须完全一致,即使多加了一个空格,或是修改了Connection String中某些属性的次序都会让ADO.Net认为这是一个新的连接,而从新创建一个新的连接。所以如果您使用的UserID,Password的认 证方式,修改了Password也会导致一个Connection,如果使用的是SQL的集成认证,就需要保存两个连接使用的是同一个)。然后 ADO.net需要判断当前的Connection Pool中是否有可以使用的Connection(没有被其他程序所占用),如果没有的话,ADO.net就需要判断ConnectionString设 置的Max Pool Size (默认为100),如果Connection Pool中的所有Connection没有达到Max Pool Size,ADO.net则会再次连接数据库,创建一个连接,然后将Connection返回给程序。如果已经达到了 MaxPoolSize,ADO.net就不会再次创建任何新的连接,而是等待Connection Pool中被其他程序所占用的Connection释放,这个等待时间受SqlConnection.ConnectionTimeout(默认是15 秒)限制,也就是说如果时间超过了15秒,SqlConnection就会抛出超时错误(所以有时候如果SqlConnection.open()方法抛 出超时错误,一个可能的原因就是没有及时将之前的Connnection关闭,同时Connection Pool数量达到了MaxPoolSize。)如果有可用的Connection,从Connection Pool 取出的Connection也不是直接就返回给程序,ADO.net还需要检查ConnectionString的ConnectionReset属性 (默认为True)是否需要对Connection 最一次reset。这是由于,之前从程序中返回的Connection可能已经被修改过,比如说使用 SqlConnection.ChangeDatabase method 修改当前的连接,此时返回的Connection可能就已经不是连接当前的Connection String指定的Initial Catalog数据库了。所以需要reset一次当前的连接。但是由于所有的额外检查都会增大ADO.net Connection Pool 对系统的开销。
该用户从未签到已加入:&已加入:&
强烈支持楼主ing……
( 豫ICP备号-1)正确修改MySQL最大连接数的三种好用方案
- 微尘的世界 - ITeye技术网站
博客分类:
以下的文章主要介绍的是正确修改MySQL最大连接数的三种好用方案,我们大家都知道MySQL数据库在安装完之后,默认的MySQL数据库,其最大连接数为100,一般流量稍微大一点的论坛或网站这个连接数是远远不够的,增加默认MySQL连接数的方法有两个。方法一:进入MySQL安装目录 打开MySQL配置文件 my.ini 或 my.cnf查找 max_connections=100 修改为 max_connections=1000 服务里重起MySQL即可方法二:MySQL最大连接数默认是100客户端登录:MySQL -uusername -ppassword 复制代码
设置新的MySQL最大连接数为200:MySQL& set GLOBAL max_connections=200
MySQL&SHOW VARIABLES;
MySQL&SHOW VARIABLES like 'max_%';
显示当前运行的Query:MySQL& show processlist
如何查询mysql的已连接数
显示当前状态:MySQL& show status 复制代码
退出客户端:MySQL& exit查看当前MySQL最大连接数:MySQLadmin -uusername -ppassword variables
方法三:以centos 4.4 下面的MySQL 5.0.33 手工编译版本为例说明:
vi /usr/local/MySQL/bin/MySQLd_safe 复制代码
找到safe_MySQLd编辑它,找到MySQLd启动的那两行,在后面加上参数 :
-O max_connections=1500 复制代码
具体一点就是下面的位置:用红字特别说明:
then $NOHUP_NICENESS $ledir/$MySQLD
$defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION
--pid-file=$pid_file
--skip-external-locking
-O max_connections=1500 && $err_log 2&&1 else
eval "$NOHUP_NICENESS $ledir/$MySQLD
$defaults --basedir=$MY_BASEDIR_VERSION
--datadir=$DATADIR $USER_OPTION
--pid-file=$pid_file
--skip-external-locking $args
-O max_connections=1500 && $err_log 2&&1"
# service MySQLd restart
# /usr/local/MySQL/bin/MySQLadmin -uroot -p variables
输入root数据库账号的密码后可看到max_connections 1500 即新改动已经生效。还有一种方法,修改原代码:解开MySQL的原代码,进入里面的sql目录修改MySQLd.cc找到下面一行:
{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clients allowed.", (gptr*) &max_connections,
(gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 100, 1, 1,
把它改为:
{"max_connections", OPT_MAX_CONNECTIONS,
"The number of simultaneous clients allowed.", (gptr*) &max_connections,
(gptr*) &max_connections, 0, GET_ULONG, REQUIRED_ARG, 384, 0, 1,
存盘退出,然后./con**make install可以获得同样的效果。以上的相关内容就是对修改MySQL最大连接数的3种方法的介绍,望你能有所收获。
原文出自【比特网】,转载请保留原文链接:
如何查询mysql的已连接数??
请问如何查询mysqlserver当前已经连了多少用户??我用的是windows操作系统,server安装在别的机器上,我是客户端想获取server的已连接用户数。请告知。。
D:MySQLbin&mysqladmin processlist -uroot -pgene
不好意思,我描述的有问题。。我要得到的是已连接server的客户端的个数。。用这个s语句得到了十几条记录,而且记录有重复的,就像你上面的那样,同一个用户登录它显示有两条记录,而我想得到的是1.这个命令看到host对host去冗余就是你要的了
查看MySQL连接数方法 13:031、查看当前所有连接的详细资料:
MySQLadmin -uroot -proot processlist D:\MySQL\bin&MySQLadmin -uroot -proot processlist +-----+------+----------------+---------+---------+------+-------+------------------+ | Id | User | Host | db | Command | Time | State | Info | +-----+------+----------------+---------+---------+------+-------+------------------+ | 591 | root | localhost:3544 | bbs | Sleep | 25 | | | | 701 | root | localhost:3761 | | uery | 0 | | show processlist | +-----+------+----------------+---------+---------+------+-------+------------------+ 2、只查看当前MySQL连接数(Threads就是连接数.):
MySQLadmin -uroot -proot status D:\MySQL\bin&MySQLadmin -uroot -proot status Uptime: 2102 Threads: 3 Questions: 15531 Slow queries: 0 Opens: 0 Flush tab les: 1 Open tables: 61 Queries per second avg: 7.389 3、修改MySQL最大MySQL连接数:
打开my.ini,修改max_connections=100(默认为100)。
fireinwind
浏览: 434103 次
来自: 北京
求大神帮忙啊
如果,我网页上有个访问统计脚本。比如CNZZ的统计脚本:&lt ...
如果是参考的SpringSide构建的项目,使用:org.ap ...
心碎很美 写道在吗师兄,你的Proxool连接池用的那个版本, ...C3p0连接可以设定最大连接数:连接池中最多可以存在的连接个数?如果没有这个参数,连接太多的话,数据库岂不承受不了。
问题补充:caizi12 写道这是不c3p0决定的,他只是管理者,不是承受者。能有多少连接看你用的什么web服务器,硬件服务器配置怎么样。好比1G内存的服务器只能承受100个连接,那你的连接最多只能有100个连接,2G内存有可能承受200个连接,关键看你的硬件服务器。
那比如我2g内存的mysql服务器。我并发1000个用户,可能同时产生2000个数据库请求连接,那岂不是mysql服务器就直接内存不够了。
问题补充:danceflash 写道C3P0当然可以设定连接池中的最大连接数,不然连接池也失去了其管理连接的意义
使用:minPoolSize 和 maxPoolSize 设置C3P0的最小和最大连接数
并使用: initialPoolSize 设置C3P0启动时的初始连接数
C3P0的设置参数很多,如果你想详细了解的话,请参考相关的说明文档
/view/67aad95bbe2c76.html
minPoolSize 和 maxPoolSize&& 的概念是空闲的最小和最大连接数吧。如果请求的连接数超出这个范围,还是会新生成新的连接吧。
采纳的答案
不是空闲的,是指整个连接池总共的连接数,至于连接是使用还是空闲,是C3P0在使用时自己去管理的
如果请求连接数超出了连接池数量的话,需要等待有连接从使用返回空闲状态才能继续分配
但是有一个问题是lz需要考虑的:
1. 使用连接池需要有良好的上层构架,要保证对数据库连接的使用被限制在最小范围,一旦连接使用完毕要及时而快速的归还给连接池
2. 虽然网站的访问量可能同时在线人数有几千人,但是需要考虑真正需要同时查询数据库的请求到底有多少,因为大多数查询速度是很快的,查询完成后连接迅速归还连接池就可以保证后续的查询继续使用。
当然,具体的适合你的项目使用的连接数,需要你针对项目特性进行分析,并进行性能测试后确定。
C3P0当然可以设定连接池中的最大连接数,不然连接池也失去了其管理连接的意义
使用:minPoolSize 和 maxPoolSize 设置C3P0的最小和最大连接数
并使用: initialPoolSize 设置C3P0启动时的初始连接数
C3P0的设置参数很多,如果你想详细了解的话,请参考相关的说明文档
/view/67aad95bbe2c76.html
我只是举个例子,实际能支持多少我也没测试过。
如果2G只能承受2000个连接,再有新的连接肯定不行了,承受不了了。本来你电脑同时开两个魔兽,内存刚好够用,再开一个你想想有什么结果,不是卡机就是死机,道理都差不多地。
这是不c3p0决定的,他只是管理者,不是承受者。能有多少连接看你用的什么web服务器,硬件服务器配置怎么样。好比1G内存的服务器只能承受100个连接,那你的连接最多只能有100个连接,2G内存有可能承受200个连接,关键看你的硬件服务器。
已解决问题
未解决问题}

我要回帖

更多关于 mysql最大连接数设置 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信