设备运行数据表才千万级,说明实时数据量应该不会太大,为什么不再建立一个实时数据表(当然如果有需要,这个表你也可以按区域之类的分表),表中就三字段,比如就设备ID,区域ID(这以两个为唯一索引)和当前最大monitor_value,然后在设备运行数据表中建立触发器,当插入新数据时就去更新那个实时数据表(或者说如果设备ID区域ID没出现就新建,如果有并且数据比那个还大就更新)
mysqlexecutebatch效率慢
1 数据查询过慢一般是索引问题,可能是因为选错索引,也可能是因为查询的行数太多。
2客户端和数据库连接数过小,会限制sql的查询并发数,增大连接数可以提升速度。
3innodb里会有一层内存buffer pool用于提升查询速度,命中率一般>99%,如果低于这个值,可以考虑增大buffer pool的大小,这样也可以提升速度。
应该是网络问题!–skip-grant-tables系统将对任何用户的访问不做任何访问控制测试一下,看看!
如果还慢就应该是网络问题!与mysql无关,建议mysql安装在非win OS服务器上!
记得 skip-grant-table测试完成后需要mysqladmin 改回权限!
没有可以研究的环境~不过我觉得和Dns肯定是没有关系。所谓的skip-name-resolve在windows下网络环境的话就是命名管道访问,在Liunx下就只能用url来访问。所以我觉得你直接ping下B看看有没有5ms的延时。如果有,你多虑了。。。。
ps:而且早几年我要是纠结与这种问题。人家肯定说我有强迫症。5ms不值当
看下延时。
如果延时正常的话,然后查询下连接数,检查是不是创建了大量连接。
再没有问题就尝试sqlplus直连。正常情况数据库主机通信不是很大,一般是程序中有大量创建连接引起的。
以上就是关于mysql多表连接查询很慢,有更好的解决方案吗全部的内容,包括:mysql多表连接查询很慢,有更好的解决方案吗、mysqlexecutebatch效率慢、远程连接mysql数据库很慢,修改了my.ini配置文件还是没用等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)