Vytváření a práce s tabulkami - část 3

Může být sqlite3 rychlejší než MySQL na sdíleném hostování a na malých až průměrných webech (méně než 500 návštěvníků denně).

Mám účet u oblíbeného poskytovatele sdíleného hostingu a všiml jsem si, že se stránky staly poměrně pomalými. Pochybuji, že se to může stát, protože je server MySQL přetížen.

Některé CMS fungují dobře i s SQLlite, takže jsem bloudil, jestli bych měl použít SQLite pro nové stránky místo MySQL.

  • 99% času, ano.

Je obtížné posoudit, který z nich bude rychlejší bez dalších podrobností o tom, jak je nakonfigurován váš sdílený hosting.

Aplikace, která používá MySQL, se bude muset připojit k serveru MySQL. To lze provést na vzdáleného / místního hostitele přes TCP nebo na místního hostitele přes soket Unix. Ten druhý bude pravděpodobně o něco rychlejší, protože nebudete mít režii TCP (ani na localhost).

Naproti tomu SQLite používá soubor ve stejném systému přímo. Pokud je na stejném disku, je pravděpodobné, že bude obecně rychlejší než připojení k samostatnému serveru. Někteří sdílení hostitelé však používali sdílené systémy souborů (např. NFS), kde může být vaše skutečné úložiště souborů stejně vzdálené.

Pravděpodobně budou mít dopad i další faktory:

  • Druh zámků a izolace požadované vaší aplikací.
  • Samotné dotazy a způsob konfigurace indexu. Nemám na mysli příklad o SQLite v.s. MySQL, ale PostgreSQL může vytvářet indexy pomocí funkcí (např. CREATE INDEX day_idx ON my_table(date_trunc('day', some_timestamp))), což MySQL nemůže.
  • Využití připravených výpisů, možné ukládání do mezipaměti, ...

To vše se bude lišit v závislosti na skutečné aplikaci a konkrétní konfiguraci vašeho sdíleného hostitele. Jediným způsobem, jak zjistit, který z nich bude fungovat lépe, je vyzkoušet a porovnat.

  • 1 SQLite, stejně jako u většiny RDMBS, má také své vlastní měřítko. I když je web malý nejen v návštěvnících, ale také v obsahu, neměl by to být problém. Je však také třeba poznamenat, že SQLite nemá design klient-server jako většina RDBMS. Klient SQLite dělá veškerou práci, takže zatímco MySQL DB může být pomalejší kvůli latenci v síti, aplikace může být celkově rychlejší kvůli odlehčení operací DB na server DB.
  • Znáte nějaký testovací nástroj? Nějaký skript, který lze spustit na MySQL i SQlite?
  • 1 Existuje několik otázek týkajících se testování výkonu webu na tomto webu, které obsahují seznam několika nástrojů (např. Tento). Hlavním bodem je to, že pokud testujete aplikaci jako celek, nejlépe na skutečném hostiteli (nebo něčem s podobnými vlastnostmi), je testování bodu SQLite proti MySQL malé.

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?

užitečné informace