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

Bagaimana Anda membuat Python / PostgreSQL lebih cepat?

Jangan buang waktu untuk membuat profil. Waktu selalu dalam operasi database. Lakukan sesedikit mungkin. Hanya jumlah minimum sisipan.

Tiga Hal.

Satu. Jangan PILIH berulang-ulang untuk menyesuaikan dimensi Tanggal, Nama Inang, dan Orang. Ambil semua data SEKALI ke kamus Python dan gunakan di memori. Jangan lakukan pemilihan tunggal berulang. Gunakan Python.

Dua. Jangan Perbarui.

Secara khusus, Jangan lakukan ini. Ini kode yang buruk karena dua alasan.

cursor.execute("UPDATE people SET chats_count = chats_count + 1 WHERE id = '%s'" % person_id)

Itu diganti dengan SELECT COUNT(*) FROM sederhana ... . Jangan pernah memperbarui untuk menambah hitungan. Hitung saja baris yang ada dengan pernyataan SELECT. [Jika Anda tidak dapat melakukan ini dengan SELECT COUNT atau SELECT COUNT(DISTINCT) sederhana, Anda kehilangan beberapa data -- model data Anda harus selalu memberikan jumlah lengkap yang benar. Jangan pernah memperbarui.]

Dan. Jangan pernah membangun SQL menggunakan substitusi string. Benar-benar bodoh.

Jika, karena alasan tertentu SELECT COUNT(*) tidak cukup cepat (tolok ukur terlebih dahulu, sebelum melakukan sesuatu yang lumpuh) Anda dapat menyimpan hasil penghitungan di tabel lain. SETELAH semua beban. Lakukan SELECT COUNT(*) FROM whatever GROUP BY whatever dan masukkan ini ke dalam tabel hitungan. Jangan Perbarui. Pernah.

Tiga. Gunakan Variabel Bind. Selalu.

cursor.execute( "INSERT INTO ... VALUES( %(x)s, %(y)s, %(z)s )", {'x':person_id, 'y':time_to_string(time), 'z':channel,} )

SQL tidak pernah berubah. Nilai terikat dalam perubahan, tetapi SQL tidak pernah berubah. Ini JAUH lebih cepat. Jangan pernah membuat pernyataan SQL secara dinamis. Tidak pernah.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nilai kunci duplikat IntegrityError melanggar batasan unik - Django/postgres

  2. Mengonversi perintah SQL ke ORM Python

  3. Alternatif Diagnostik pgDash - Manajemen Kueri PostgreSQL dengan ClusterControl

  4. Indeks GIN PostgreSQL pada array uuid

  5. Hilangkan duplikat kota dari database