Rumah >pangkalan data >tutorial mysql >Bagaimanakah PreparedStatement Boleh Meningkatkan Sisipan Berbilang Baris dalam MySQL?

Bagaimanakah PreparedStatement Boleh Meningkatkan Sisipan Berbilang Baris dalam MySQL?

DDD
DDDasal
2024-12-19 21:09:121081semak imbas

How Can PreparedStatement Improve Multi-Row Inserts in MySQL?

Mengoptimumkan Sisipan Berbilang Baris dengan PreparedStatement

Pada mulanya, memasukkan baris ke dalam jadual MySQL menggunakan gelung dan panggilan PreparedStatment individu adalah amalan biasa . Walau bagaimanapun, untuk meningkatkan prestasi, menggunakan sintaks yang disokong MySQL untuk sisipan berbilang baris adalah wajar.

Mengumpulkan dengan PreparedStatement

A PreparedStatement menawarkan penyelesaian untuk berbilang-bilangan yang dioptimumkan sisipan baris melalui batching. Dengan menggunakan kaedah PreparedStatement#addBatch(), berbilang pernyataan SQL terkumpul dalam satu kelompok. Pernyataan ini kemudiannya dilaksanakan secara serentak melalui PreparedStatement#executeBatch().

Kod sampel berikut menunjukkan pendekatan ini:

public void save(List<Entity> entities) throws SQLException {
    try (
        Connection connection = database.getConnection();
        PreparedStatement statement = connection.prepareStatement(SQL_INSERT);
    ) {
        int i = 0;

        for (Entity entity : entities) {
            statement.setString(1, entity.getSomeProperty());
            // ...

            statement.addBatch();
            i++;

            if (i % 1000 == 0 || i == entities.size()) {
                statement.executeBatch(); // Execute every 1000 items.
            }
        }
    }
}

Sumber Tambahan

Untuk butiran lanjut mengenai teknik ini, rujuk perkara berikut sumber:

  • Tutorial JDBC - Menggunakan PreparedStatement
  • Tutorial JDBC - Menggunakan Objek Penyata untuk Kemas Kini Kelompok

Atas ialah kandungan terperinci Bagaimanakah PreparedStatement Boleh Meningkatkan Sisipan Berbilang Baris dalam MySQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn