【问题标题】:is there any limit on the number of rows one can select in MySQL?在 MySQL 中可以选择的行数是否有限制?
【发布时间】:2011-01-14 17:13:34
【问题描述】:

MYSQL 中我的表中有 1652487 行。我想将一个字段对应的所有值复制到一个文件中。为此,我使用 jdbc 驱动程序在 netbeans 中编写了一个 java 程序。我无法一口气做到这一点。有出路吗 ?

[编辑]

我的代码:按下按钮时执行的操作:

 private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        // TODO add your handling code here:
        try
        {
        File fo=new File("D:\\dmoz_externalpages.txt");
        FileWriter fro=new FileWriter(fo);
        BufferedWriter bro=new BufferedWriter(fro);
        Connection con=null;
        Class.forName("com.mysql.jdbc.Driver").newInstance();
        con=DriverManager.getConnection("jdbc:mysql://localhost:3306/dmozphp","root","");
        PreparedStatement ps=con.prepareStatement("select externalpage from content_description");
        ResultSet rs=ps.executeQuery();
        while(rs.next())
        {        
            bro.write(rs.getString(1));
            bro.newLine();
            bro.flush();
        }
        }
        catch(Exception e)
        {
            System.out.println(e);
        }

    }       

当我运行它时,我得到以下异常:

Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space

【问题讨论】:

  • 你的代码是什么样的,有什么问题?

标签: mysql netbeans jdbc


【解决方案1】:

对此没有 MySQL 限制。我的强烈猜测是您受到客户端内存的限制。

我之前能够毫无问题地导出超过 2500 万行的整个表格。

如果您想以最快的方式导出数据,请使用SELECT INTO OUTFILE 或试试Maatkit

【讨论】:

  • 我发现只要执行那个命令就可以做到这一点 ,这意味着手动将这些数据复制到文件中会很耗时.. 所以,我写了一个程序来自动写入文件。当我执行它时,我得到了上面提到的异常
  • 谢谢,我得到了我需要的东西。(SELECT INTO OUTFILE 选项)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-25
  • 1970-01-01
  • 2010-10-07
  • 2022-07-18
相关资源
最近更新 更多