Oprettelse og arbejde med tabeller - Del 3

Kan sqlite3 være hurtigere end MySQL på delt hosting og små til gennemsnitlige websteder (mindre end 500 besøgende om dagen).

Jeg har en konto i en populær udbyder af delt hosting, og jeg har bemærket, at det er blevet ret langsomt redering sider. Min tvivl er, at dette kan ske, fordi MySQL-serveren er overbelastet.

Nogle CMS'er fungerer også fint med SQLlite, så jeg vandrede, hvis jeg skulle bruge SQLite til de nye steder i stedet for MySQL.

  • 99% af tiden, ja.

Det er svært at vurdere, hvilken der vil være hurtigere uden yderligere detaljer om, hvordan din delte hosting er konfigureret.

Et program, der bruger MySQL, skal oprette forbindelse til en MySQL-server. Dette kan gøres til en ekstern / lokal vært via TCP eller til den lokale vært via et Unix-stik. Sidstnævnte er sandsynligvis lidt hurtigere, da du ikke vil have TCP's overhead (selv ikke på localhost).

I modsætning hertil bruger SQLite en fil på det samme system direkte. Hvis det er på den samme disk, er det sandsynligvis generelt hurtigere end en forbindelse til en separat server. Nogle delte værter brugte dog delte filsystemer (f.eks. NFS), hvor din faktiske fillager muligvis er fjern alligevel.

Andre faktorer vil sandsynligvis have indflydelse:

  • Den slags låse og isolering, der kræves af din ansøgning.
  • Forespørgslerne selv, og hvordan indekset er konfigureret. Jeg har ikke et eksempel i tankerne om SQLite v.s. MySQL, men PostgreSQL kan oprette indekser ved hjælp af funktioner (f.eks. CREATE INDEX day_idx ON my_table(date_trunc('day', some_timestamp))), som MySQL ikke kan.
  • Brug af forberedte udsagn, mulig caching, ...

Alt dette vil variere afhængigt af den aktuelle applikation og den specifikke konfiguration af din delte vært. Den eneste måde at finde ud af, hvilken der fungerer bedre, er at prøve at sammenligne.

  • 1 SQLite, som med de fleste RDMBS'er, har også sine egne skaleringsovervejelser. Skønt hvis webstedet er lille, ikke kun hos besøgende, men også i indhold, bør dette ikke være et problem. Men det skal også bemærkes, at SQLite ikke har et klientserverdesign som de fleste RDBMS'er. SQLite-klienten udfører alt arbejdet, så mens en MySQL DB muligvis er langsommere på grund af netværksforsinkelsen, kan appen generelt være hurtigere på grund af aflæsning af DB-operationer til DB-serveren.
  • Kender du noget testværktøj? Noget script, der kan køres på både MySQL og SQlite?
  • 1 Der er et par spørgsmål om test af webpræstationer på dette websted, der viser et par værktøjer (f.eks. Dette). Hovedpointen her er, at der ikke er nogen mening med at teste SQLite mod MySQL, hvis du ikke tester applikationen som helhed, helst på den faktiske vært (eller noget med lignende karakteristika).

arbejdet for dig: Charles Robertson | Ønsker du at kontakte os?