Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Mengapa PostgreSQL sangat lambat di Windows?

Ada kasus di mana PostgreSQL di Windows membayar biaya tambahan dibandingkan dengan solusi lain, karena pengorbanan yang dibuat saat kami mem-portingnya.

Misalnya, PostgreSQL menggunakan proses per koneksi, MySQL menggunakan utas. Di Unix, ini biasanya bukan perbedaan kinerja yang mencolok, tetapi pada Windows membuat proses baru sangat mahal (karena kurangnya panggilan sistem fork()). Karena alasan ini, menggunakan koneksi persisten atau kumpulan koneksi banyak lebih penting di Windows saat menggunakan PostgreSQL.

Masalah lain yang saya lihat adalah bahwa PostgreSQL awal di Windows secara default akan memastikan bahwa penulisannya melalui cache tulis - bahkan jika itu didukung baterai. AFAIK, MySQL tidak melakukan ini, dan itu akan sangat mempengaruhi kinerja penulisan. Sekarang, ini sebenarnya diperlukan jika Anda memiliki perangkat keras yang tidak aman, seperti drive yang murah. Tetapi jika Anda memiliki cache tulis yang didukung baterai, Anda ingin mengubahnya ke fsync biasa. PostgreSQL versi modern (tentu saja 8.3) akan menjadi default open_datasync sebagai gantinya, yang akan menghapus perbedaan ini.

Anda juga tidak menyebutkan apa pun tentang cara Anda menyetel konfigurasi database. Secara default, file konfigurasi yang dikirimkan dengan PostgreSQL sangat konservatif. Jika Anda belum mengubah apa pun di sana, Anda pasti perlu melihatnya. Ada beberapa saran penyetelan yang tersedia di wiki PostgreSQL .

Untuk memberikan detail lebih lanjut, Anda harus memberikan lebih banyak detail tentang apa yang berjalan lambat, dan bagaimana Anda menyetel basis data Anda. Saya akan menyarankan email ke milis pgsql-general.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara mengambil catatan pertama dan terakhir dari catatan yang dikelompokkan dalam kueri MySQL dengan fungsi agregat?

  2. Mysql secara dinamis membangun string kueri dalam prosedur tersimpan berdasarkan logika

  3. Simpan dan ulangi hasil kueri di mysqli

  4. Mysql:Perbarui bidang catatan terbaru

  5. Kueri SQL untuk mendapatkan nilai rata-rata untuk periode waktu tertentu