java代码大量使用mysql

标签 java mysql

我当前正在运行一些java代码,它对mysql数据库进行大量调用。这些调用淹没了数据库,在代码运行几个小时后,我收到了一个嵌套异常:

java.io.EOFException
    at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1934)
    at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2380)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2909)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:798)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3700)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1203)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2572)


Last packet sent to the server was 8789 ms ago.
    at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2592)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2909)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:798)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3700)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1203)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:2572)

不幸的是,我对此类问题没有太多经验,任何人都可以推荐一些方法来确保我的所有查询都能得到处理吗?

我可以理解这是一个非常广泛的问题,但查询本身并不困难,更多的是我请求的查询数量的规模。

谢谢

最佳答案

我会在 OS/MySql/Web 服务器级别解决此问题。换句话说,这本身不是“Java”问题。这可能更多是一个“系统性能/系统配置”问题。

建议:

1) 您还没有指定您的操作系统、Web 服务器/应用程序服务器。这些是关键。

2) 运行基本性能检查(Linux 下为 ps -eaf 和 iostat,Windows 下为 Task Mgr/CPU/Memory/Networking stats)。特别注意“netstat”(Linux 和 Windows)。

3) 查看所有相关日志(Linux 的/var/log/messages 等;Windows 的 EventVwr 等)

4) 检查您的操作系统、数据库和 Web 服务器配置设置。

5) 特别注意可能的“失效连接”和与数据库相关的“连接池”参数。

检查这些链接:

关于java代码大量使用mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12127314/

相关文章:

java - 从 Java 启动文件

c# - 它只导入 mysql 数据库中的 1 行

mysql - SQL 事务语句在 Xampp 中不起作用

php - 使用 php 将 sqlite 转为 mysql

php - MySQL表存在时不存在

Java游戏,游戏结束后根据用户命令重新启动

java - 为什么 Google Eclipse 插件 GWT 编译器无法识别 Ivy 依赖项类路径?

java - 在jsp页面中显示选定的文本

java - 在Java中确认来自不同线程的rabbitMq消息

php - Mysql Order by Error CI