sql >> Database >  >> RDS >> Mysql

Waarom is PostgreSQL zo traag op Windows?

Er zijn gevallen waarin PostgreSQL op Windows extra overhead betaalt in vergelijking met andere oplossingen, vanwege compromissen die zijn gemaakt toen we het overzetten.

Zo gebruikt PostgreSQL een proces per verbinding, MySQL een thread. Op Unix is ​​dit meestal geen merkbaar prestatieverschil, maar op Windows is het maken van nieuwe processen erg duur (vanwege het ontbreken van de fork()-systeemaanroep). Om deze reden is het gebruik van permanente verbindingen of een pooler voor verbindingen veel belangrijker op Windows bij gebruik van PostgreSQL.

Een ander probleem dat ik heb gezien, is dat vroege PostgreSQL op Windows er standaard voor zorgt dat de schrijfacties door de schrijfcache gaan - zelfs als de batterij wordt ondersteund. AFAIK, MySQL doet dit niet, en het zal grote invloed hebben op de schrijfprestaties. Dit is nu eigenlijk vereist als je niet-veilige hardware hebt, zoals een goedkope schijf. Maar als u een schrijfcache met batterijvoeding hebt, wilt u deze wijzigen in gewone fsync. Moderne versies van PostgreSQL (zeker 8.3) zullen in plaats daarvan standaard open_datasync gebruiken, wat dit verschil zou moeten wegnemen.

Je vermeldt ook niets over hoe je de configuratie van de database hebt afgesteld. Het configuratiebestand dat bij PostgreSQL wordt geleverd, is standaard zeer conservatief. Als je daar niets hebt veranderd, moet je het zeker eens bekijken. Er is wat afstemmingsadvies beschikbaar op de PostgreSQL-wiki .

Om meer details te geven, moet je veel meer details geven over wat er precies traag is en hoe je je database hebt afgesteld. Ik stel voor een e-mail te sturen naar de pgsql-algemene mailinglijst.



  1. PostgreSQL-equivalent van MySQL-geheugentabellen?

  2. MySQL Verwijder alle rijen uit de tabel en reset ID naar nul

  3. Hoe kan ik strikte sql_mode inschakelen in MySQL?

  4. Een gekoppelde lijst of vergelijkbare wachtrij maken in MySQL?