因本地查询和服务器查询相比服务器慢了很多,同样的数据,同样的sql查询,考虑了是不是链接太多了,自行查询了下,我使用的c3p0的链接池,配置一个小时超时,正常情况下是20多个链接,而mysql默认的最大链接是150多个,完全足够的,最后搜索到是否是内存缓冲区问题,因为我的服务器模块sql慢是遇到有子查询的模块,子查询又是会耗费内存的,所以尝试了下,效果提升明显从原来的5、6秒到现在的零点几秒,所总结下,配置的各项命令:
1.查询最大链接数量:
show variables like ‘max_connections%’;
2.查询缓缓冲区配置:
innodb_buffer_pool_instances 缓冲区数量默认1和innodb_buffer_pool_size缓冲区大小 默认128M 即134217728B 具体配置需讨教专业人士,我这里只增大了缓冲区大小解决了问题
这里留意点缓冲区大小innodb_buffer_pool_size 配置数字,
网上说的是最新是配置5M我亲测了,默认值128M就是最小的,128M=134217728B,
在线设置数字必须为 一个整数,如要配置300M,则30010241024=314572800配置:
set global innodb_buffer_pool_size =314572800
但是这个配置重启后会失效,要想永久配置,需在my.ini配置文件中增加配置
innodb_buffer_pool_instances=8
innodb_buffer_pool_size=300M
这里可以使用兆M作为单位配置
这里配置后重启服务即可生效
3.显示链接:
show processlist;
按用户和查询数据库条件查询,所创建的链接
select * from information_schema.PROCESSLIST
where user=‘root’ and db=‘flow’ ORDER BY time desc;