使用JAVA将数据插入PostgreSQL的性能问题

时间:2017-05-07 17:36:20

标签: java postgresql sql-insert

我在将数据插入Postgresql数据库时遇到问题。代码生成随机值并将其插入数据库。如果我尝试一次插入多达300000行,它可以正常工作,但任何更高的行数会使电脑崩溃大约30分钟。 (相同的代码适用于MYSQL和SQLite插入1百万行)。有没有办法通过修复代码来克服这个问题,或者主要是硬件问题?

public static void insertToTable(Connection c, String tableName, int numberOfRows) throws UnsupportedEncodingException, SQLException {
            Random rand = new Random();
            StringBuilder sql =
                    new StringBuilder("INSERT INTO " + tableName + " (NR,PIRMAS,ANTRAS,TRECIAS,KETVIRTAS,PENKTAS,SESTAS,SEPTINTAS,ASTUNTAS,DEVINTAS) VALUES ");

            for (int j = 0; j < numberOfRows; j++) {
                if (j != 0) sql.append(",");
                sql.append("(" + j +
                        ",'" + String.valueOf(rand.nextInt()) + "'" +
                        ",'" + String.valueOf(rand.nextInt()) + "'" +
                        ",'" + String.valueOf(rand.nextInt()) + "'" +
                        ",'" + String.valueOf(rand.nextInt()) + "'" +
                        ",'" + String.valueOf(rand.nextInt()) + "'" +
                        ",'" + String.valueOf(rand.nextInt()) + "'" +
                        ",'" + String.valueOf(rand.nextInt()) + "'" +
                        ",'" + String.valueOf(rand.nextInt()) + "'" +
                        ",'" + String.valueOf(rand.nextInt()) + "'" +
                        ")");


            }

0 个答案:

没有答案