Pertanyaan UPDATE vs INSERT pernyataan kinerja di PostgreSQL


Saya bekerja dengan database satu juta baris sekitar .. menggunakan python untuk mengurai dokumen dan mengisi tabel dengan istilah .. Pernyataan insert berfungsi dengan baik tetapi laporan pembaruan menjadi sangat memakan waktu karena ukuran tabel bertambah ..

Akan sangat bagus jika beberapa dapat menjelaskan fenomena ini dan juga memberi tahu saya jika ada cara yang lebih cepat untuk melakukan pembaruan.

Terima kasih, Arnav


5
2017-07-03 14:37


asal


Jawaban:


Kedengarannya seperti Anda memiliki masalah pengindeksan. Setiap kali saya mendengar tentang masalah semakin memburuk ketika ukuran tabel tumbuh, itu membuat saya bertanya-tanya apakah Anda melakukan scan meja setiap kali Anda berinteraksi dengan meja.

Periksa untuk mengetahui apakah Anda memiliki kunci utama dan indeks yang berarti di tabel itu. Lihatlah klausa WHERE yang Anda miliki pada UPDATE itu dan pastikan ada indeks pada kolom-kolom itu untuk menemukan rekaman itu secepat mungkin.

UPDATE: Tulis permintaan SELECT menggunakan klausa WHERE Anda gunakan untuk UPDATE dan meminta mesin database untuk MENJELASKAN RENCANA. Jika Anda melihat TABLE SCAN, Anda akan tahu apa yang harus dilakukan.


7
2017-07-03 14:43