Batch Insert pada JDBC

java

Pada kondisi tertentu sebuah aplikasi diinginkan untuk memiliki kemampuan menyimpan sekaligus beberapa data dalam sekali klik. Kondisi seperti ini contohnya adalah proses pengimportan data pada berkas spreadsheet atau csv ke dalam relational database. Setidaknya ada 2 pendekatan untuk melakukannya, pertama dengan melakukan multiple insert dan yang kedua dengan menggunakan batch insert. Pada tulisan ini akan kita bahas keduanya tentunya dalam implementasi pada bahasa Java.

Cara 1 : Multiple Insert

Cara ini bekerja dengan mengeksekusi method executeUpdate() milik preparedStatement secara berulang-ulang sesuai dengan jumlah baris data yang akan disimpan. Jika terdapat dua ratus ribu baris data maka akan terjadi dua ratus ribu pengeksekusian query insert.

Hasil pada konsol adalah

Total time required to execute 200000 SQL INSERT queries using PreparedStatement without JDBC batch is :30

Artinya butuh waktu 30 detik untuk memasukkan dua ratus ribu data ke dalam basisdata.

Cara 2 : Batch Insert

Cara berikutnya adalah menggunakan batch insert dimana sejumlah baris data yang akan dimasukkan ke basisdata terlebih dahulu dikumpulkan dalam sebuah batch untuk kemudian baru dieksekusi.

Hasil pada konsol adalah

Total time required to execute 200000 SQL INSERT queries using PreparedStatement with JDBC batch is :28

Artinya butuh waktu 28 detik untuk memasukkan dua ratus ribu baris data ke dalam basisdata. Hal ini juga berarti bahwa penggunaan batch insert relatif lebih cepat daripada menggunakan multiple insert. Tentunya memang harus demikian karena jika tidak buat apa tim pengembang Java khususnya JDBC membuat batch insert kalau ternyata performanya tidak lebih baik daripada multiple insert.

Facebook Comments
 

Agung Setiawan

Agung Setiawan adalah software engineer di BukaLapak.com, penulis sekaligus pecinta sastra, dan pembaca buku

 
Halo, perkenalkan saya Agung Setiawan.
Saya Software Engineer di BukaLapak.
Simak pemikian saya soal dunia Software Engineering via Twitter di @agungsetiawanmu dan facebook
Blog ini saya update seminggu sekali jadi sering-sering saja mampir
Mau belajar Vim bareng saya?
Belajar ngoding dari nol menggunakan PHP

Leave a Reply

Your email address will not be published. Required fields are marked *