mysql运行一段时间后某张超大的表卡住几分钟或更长时间后恢复正常

mysql运行一段时间后某张超大的表卡住几分钟或更长时间后恢复正常,第1张

你执行下show variables like 'thread_concurrency'命令,查看系统当前thread_concurrency默认配置。

thread_concurrency应设为CPU核数的2倍. 比如有一个双核的CPU, 那thread_concurrency 的应该为42个双核的cpu, thread_concurrency的值应为8.

thread_concurrency的值的正确与否, 对mysql的性能影响很大, 在多个cpu(或多核)的情况下,错误设置了thread_concurrency的值, 会导致mysql不能充分利用多cpu(或多核), 出现同一时刻只能一个cpu(或核)在工作的情况。

方法1、mysql中提高max_connections的值。不要太高,依据你的内存而定。一般8G-16G内存服务器500-1000 mysql>set GLOBAL max_connections=1000方法2、从应用层限制连接数据库的最大连接数

用Fsocket获取数据时能够控制超时的。

如果用

File_get_contents($url)

可以临时设定环境变量:

设定默认socket超时时间

ini_set("default_socket_timeout", 3)养成好习惯,使用fsocket获取数据。

如果使用Curl,也可以在Curl中控制超时时间:

curl_setopt($ch, CURLOPT_TIMEOUT, 15)

PHP中mysql函数是不提供类似mysql超时选项的,但是php.ini的mysql.connect_timeout可设置

Maximum time (in seconds) for connect timeout. -1 means nolimit

mysql.connect_timeout = 60

也可以在php脚本中调用设置ini_set()


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/zaji/6099414.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-14
下一篇 2023-03-14

发表评论

登录后才能评论

评论列表(0条)

保存