PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Apa cara terbaik untuk memuat sejumlah besar data ke dalam PostgreSQL?

Jangan JANGAN gunakan indeks kecuali untuk kunci numerik tunggal yang unik.

Itu tidak sesuai dengan semua teori DB yang kami terima tetapi pengujian dengan banyak data menunjukkannya. Berikut adalah hasil dari 100 juta pemuatan sekaligus untuk mencapai 2 Miliar baris dalam sebuah tabel, dan setiap kali sekumpulan berbagai kueri pada tabel yang dihasilkan. Grafik pertama dengan 10 gigabit NAS (150MB/dtk), kedua dengan 4 SSD di RAID 0 (R/W @ 2GB/dtk).

Jika Anda memiliki lebih dari 200 juta baris dalam tabel pada disk biasa, lebih cepat jika Anda lupa indeks. Pada SSD, batasnya adalah 1 miliar.

Saya telah melakukannya juga dengan partisi untuk hasil yang lebih baik tetapi dengan PG9.2 sulit untuk memanfaatkannya jika Anda menggunakan prosedur tersimpan. Anda juga harus berhati-hati dalam menulis/membaca hanya 1 partisi pada satu waktu. Namun partisi adalah cara untuk menjaga tabel Anda di bawah dinding baris 1 Miliar. Ini juga membantu banyak untuk multiproses beban Anda. Dengan SSD, satu proses izinkan saya menyisipkan (menyalin) 18.000 baris/dtk (termasuk beberapa pekerjaan pemrosesan). Dengan multiprocessing pada 6 CPU, ia tumbuh menjadi 80.000 baris/dtk.

Perhatikan penggunaan CPU &IO Anda saat menguji untuk mengoptimalkan keduanya.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pesan komentar berdasarkan jalur utas dan dengan jumlah total suara

  2. Sekuel upsert() tidak pernah memperbarui dan hanya menyisipkan

  3. Apakah INSERT RETURNING dijamin untuk mengembalikan barang dalam urutan yang benar?

  4. Kerangka entitas PostgreSQL

  5. Bagaimana cara mengganti database di psql?