Java MySQL内存耗尽错误

Java MySQL内存耗尽错误,java,mysql,Java,Mysql,今天,我使用一个简单的Java应用程序将一个大数据加载到MySQL数据库中,并得到以下错误: java.sql.SQLException:来自服务器的语法错误或访问冲突消息:“内存在第5332行的“Q1”、“2.34652631E10”、“000”、“000”、“5.0519608E9”、“5.8128358E9”、“000”、“8.2756818E9,2”附近耗尽” 我试图修改my.ini文件以增加一些点,但它根本不起作用,实际上文件的大小也不是很大,它只是一个14mb xls文件,几乎没有什

今天,我使用一个简单的Java应用程序将一个大数据加载到MySQL数据库中,并得到以下错误:

java.sql.SQLException:来自服务器的语法错误或访问冲突消息:“内存在第5332行的“Q1”、“2.34652631E10”、“000”、“000”、“5.0519608E9”、“5.8128358E9”、“000”、“8.2756818E9,2”附近耗尽”

我试图修改my.ini文件以增加一些点,但它根本不起作用,实际上文件的大小也不是很大,它只是一个14mb xls文件,几乎没有什么想法,等待任何建议。谢谢你的帮助

(如果没有代码的相关部分,我只能猜测,但我们开始了…)

从错误消息中,我将在黑暗中试一试,并猜测您正试图在单个查询中加载所有300000行,这可能是通过在单个字符串中串联一整串
INSERT
语句生成的。当转换为SQL语句时,14MB XLS文件可能会变得更大,并且您的服务器在尝试解析查询时内存不足

要解决此问题(按优先顺序):

  • 将文件转换为CSV并使用

  • 将文件转换为CSV并使用

  • 使用多个中等规模的事务,每个事务只有几千条
    INSERT
    语句。如果无法简单导入文件,则建议使用此选项

  • 使用单个事务-InnoDB MySQL数据库

    • (如果没有代码的相关部分,我只能猜测,但现在我们开始……)

      从错误消息中,我将在黑暗中试一试,并猜测您正试图在单个查询中加载所有300000行,这可能是通过在单个字符串中串联一整串
      INSERT
      语句生成的。当转换为SQL语句时,14MB XLS文件可能会变得更大,并且您的服务器在尝试解析查询时内存不足

      要解决此问题(按优先顺序):

      • 将文件转换为CSV并使用

      • 将文件转换为CSV并使用

      • 使用多个中等规模的事务,每个事务只有几千条
        INSERT
        语句。如果无法简单导入文件,则建议使用此选项

      • 使用单个事务-InnoDB MySQL数据库


      也许是一个重复的问题:不,这家伙没有给出他的解决方案。您运行的查询有多大?5332行的查询表明它是巨大的(除非是java小程序中发生错误的那一行)。是的,5332行是发生错误的地方,事实上有300000行数据,但整个大小小于14MB。你能发布java程序的代码或解释吗?可能是重复的问题:不,这家伙没有给出他的解决方案。你正在运行的查询有多大?5332行的查询表明它是巨大的(除非是java小程序中发生错误的那一行)。是的,5332行是发生错误的地方,事实上有300000行数据,但整个大小小于14MB。你能发布java程序的代码或解释吗?这很有意义,第三个建议很适合我,因为我必须用java代码更改原始xml文件中的一些数据,非常感谢您!这很有道理,第三个建议很适合我,因为我必须用java代码更改原始xml文件中的一些数据,非常感谢您!