sql >> Database teknologi >  >> RDS >> Mysql

Hvorfor er PostgreSQL så langsom på Windows?

Der er tilfælde, hvor PostgreSQL på Windows betaler ekstra omkostninger sammenlignet med andre løsninger på grund af afvejninger, da vi porterede det.

For eksempel bruger PostgreSQL en proces pr. forbindelse, MySQL bruger en tråd. På Unix er dette normalt ikke en mærkbar forskel i ydeevne, men på Windows er det meget dyrt at oprette nye processer (på grund af manglen på fork() systemkaldet). Af denne grund er det meget at bruge vedvarende forbindelser eller en forbindelsespooler vigtigere på Windows, når du bruger PostgreSQL.

Et andet problem, jeg har set, er, at tidlig PostgreSQL på Windows som standard sørger for, at dets skrivninger går gennem skrivecachen - også selvom det er batteriunderstøttet. AFAIK, MySQL gør ikke dette, og det vil i høj grad påvirke skriveydelsen. Nu er dette faktisk påkrævet, hvis du har en ikke-sikker hardware, såsom et billigt drev. Men hvis du har en batteriunderstøttet skrivecache, vil du ændre denne til almindelig fsync. Moderne versioner af PostgreSQL (bestemt 8.3) vil som standard bruge open_datasync i stedet, hvilket burde fjerne denne forskel.

Du nævner heller ikke noget om, hvordan du har justeret konfigurationen af ​​databasen. Som standard er konfigurationsfilen, der leveres med PostgreSQL, meget konservative. Hvis du ikke har ændret noget der, skal du helt sikkert tage et kig på det. Der er nogle gode råd om tuning på PostgreSQL-wikien .

For at give flere detaljer, bliver du nødt til at give mange flere detaljer om præcis, hvad der kører langsomt, og hvordan du har tunet din database. Jeg vil foreslå en e-mail til pgsql-generelle mailinglist.



  1. Bedste måde at håndtere mange-til-mange relationer i PHP MySQL

  2. Hvordan Pi() virker i PostgreSQL

  3. Oracle unik begrænsning og unikt indeks

  4. MySql erklæring forberede ikke klæber