mysql数据包超过16兆怎么解决
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql数据包超过16兆怎么解决相关的知识,希望对你有一定的参考价值。
第一先限制Innodb的并发处理.如果innodb_thread_concurrency = 0 可以先改成 16或是64 看机器压力,如果非常大,先改成16让机器的压力下来,然后慢慢增达,适应自已的业务.
处理方法: set global innodb_thread_concurrency=16;
第二: 对于连接数已经超过600或是更多的情况,可以考虑适当的限制一下连接数,让前端报一下错,也别让DB挂了.
DB在了,总是可以用来加载一下数据,当数据加载到了nosql里了,慢慢的DB压力也会降下来的.
限制单用户连接数在500以下. 如:
set global max_user_connections=500;
(mysql随着连接数的增加性能会是下降的,这也是thread_pool出现的原因)
另外对于有的监控程序会读取information_schema下面的表的程序可以考虑关闭下面的参数
innodb_stats_on_metadata=0
set global innodb_stats_on_metadata=0;
这个参数主要防止对读取information_schema时造成大量读取磁盘进行信息统计(如果慢查询中出现关于information_schema中表时,也可以考虑禁用该参数)
处理依据:
当学校的一个食堂一分钟只能为两个打饭, 忽然来了100个时人来打饭,又没排队, 不出会现了打饭的师傅要用点时间
去选择为那个用户服务了, 人越多,场面就越乱, 难免出现用户大吼该他的场面, 最后有可能就出现不是打饭了,而时之间相互
打架了,打饭的师傅也将收到同时有90个以上的Server too busy. 如果能排一下队.最多也就50分钟能处理完了.
以前办法,应该可以让MySQLD不会挂掉.如果业务支撑受到限制,还是想办法处理一下. 参考技术A 分页分批,
MySql 查询数据时间过长,导致程序报错 怎么解决
MySql 查询数据时间过长,导致程序报错 怎么解决
参考技术A 如果不能更改数据库结构,且不能更改查询的语句,只是希望不报错的话,请检查你程序文件中,调用Mysql的模块,
以C#为例,会使用ado.NET来操作Mysql数据库,
在配置文件中,会有<TimeOut>属性,默认是60000ms 即一分钟.
查询时,程序请求Sql =>sql处理 =>sql返回结果,
如果处理过程超过60000ms 就会报错,
将这个属性该为更大的数值即可解决,
如果是其他语言开发的程序,应该也会有类似的属性可供修改。 参考技术B 查询超时,需要看具体的查询语句以及数据库结构、代码等是否有问题。
数据库创建索引,对查询条件where进行优化(重点看看这块)。追问
本人 对于sql优化这块不是很了解,where语句因为业余需要已经不能改了。
有没有什么办法让程序不报错,查询慢点没事
2 提升电脑性能
3 病毒清理 参考技术D 优化你的查询,60秒都完不成的查询,要是多用户会怎样? 第5个回答 2016-04-08 ???????????
不知道你在说什么?
以上是关于mysql数据包超过16兆怎么解决的主要内容,如果未能解决你的问题,请参考以下文章
eclipse中导入jar包后只有数据库这里出现红叉,怎么解决