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

Bagaimanakah PreparedStatement Boleh Meningkatkan Sisipan Berbilang Baris dalam MySQL?

DDD
Lepaskan: 2024-12-19 21:09:12
asal
987 orang telah melayarinya

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.
            }
        }
    }
}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan