sql >> Databasteknik >  >> RDS >> Mysql

Varför är PostgreSQL så långsam på Windows?

Det finns fall där PostgreSQL på Windows betalar en extra omkostnad jämfört med andra lösningar, på grund av avvägningar som gjordes när vi porterade det.

Till exempel använder PostgreSQL en process per anslutning, MySQL använder en tråd. På Unix är detta vanligtvis ingen märkbar prestandaskillnad, men på Windows är det väldigt dyrt att skapa nya processer (på grund av avsaknaden av systemanropet gaffel()). Av denna anledning är det mycket att använda beständiga anslutningar eller en anslutningspoolare viktigare i Windows när du använder PostgreSQL.

Ett annat problem jag har sett är att tidiga PostgreSQL på Windows som standard kommer att se till att skrivningarna går igenom skrivcachen - även om den är batteribackad. AFAIK, MySQL gör inte detta, och det kommer att i hög grad påverka skrivprestandan. Nu krävs detta faktiskt om du har en icke-säker hårdvara, till exempel en billig enhet. Men om du har en batteristödd skrivcache vill du ändra detta till vanlig fsync. Moderna versioner av PostgreSQL (förvisso 8.3) kommer som standard till open_datasync istället, vilket borde ta bort denna skillnad.

Du nämner inte heller något om hur du har justerat konfigurationen av databasen. Som standard är konfigurationsfilen som levereras med PostgreSQL mycket konservativ. Om du inte har ändrat något där, måste du definitivt ta en titt på det. Det finns några inställningsråd tillgängliga på PostgreSQL-wikin .

För att ge fler detaljer måste du ge mycket mer information om exakt vad som går långsamt och hur du har ställt in din databas. Jag skulle föreslå ett e-postmeddelande till pgsql-general mailinglist.



  1. För- och nackdelar med att använda SqlCommand Prepare i C#?

  2. Hur man kommer åt fjärransluten MySql-databas från iPhone-appen

  3. Får konstiga tecken när man hämtar värde i mysql-databasen

  4. MySQL &NHibernate. Hur åtgärdar du felet:Kolumnen "ReservedWord" tillhör inte tabellen ReservedWords?