Porovnání SQLite vs. MySQL

NROP

Porovnání SQLite vs. MySQL
« kdy: 13. 09. 2016, 15:17:06 »
Zdar,

Hledám nějaký aktualní stav použití disku a velikosti databáze u SQLite a MySQL (Jejich porovnání)

např. stejná web stránka na SQLite a MySQL
« Poslední změna: 14. 09. 2016, 12:45:35 od Petr Krčmář »


Kit

Re:SQLite vs MySQL Porovnání
« Odpověď #1 kdy: 13. 09. 2016, 15:28:35 »
MySQL je lepší při častém zápisu, SQLite je lepší při častém čtení.

marian

Re:SQLite vs MySQL Porovnání
« Odpověď #2 kdy: 13. 09. 2016, 16:04:59 »
nedala by se sqlite jeste urychlit ze by se nacitala z RAMdisku? jestli ano, tak nejak vyrazne?


Kit

Re:SQLite vs MySQL Porovnání
« Odpověď #3 kdy: 13. 09. 2016, 16:27:29 »
nedala by se sqlite jeste urychlit ze by se nacitala z RAMdisku? jestli ano, tak nejak vyrazne?

SQLite se dá urychlit tak, že místo na disk ukládá data přímo do RAM procesu. Často je to rychlejší, než implementace vlastních datových struktur. Pokud si nad SQLite postavíš nějaký serverový engine, např. v Pythonu, může to být velmi výkonné. Ovšem pokud si vystačíš s KVS, jako většina aplikací, stačí použít kolekce.

Kamil

Re:SQLite vs MySQL Porovnání
« Odpověď #4 kdy: 13. 09. 2016, 16:30:22 »
Srovnáváš nesrovnatelné, jedná se o dva zcela jinak zaměřené produkty. SQLite je víceméně jen knihovna, která pracuje s "databází", která je v jednom souboru.  MySQL je už plnohodnotný DB server, kde platí klasická architektura klient-server.
Oba tyto systémy mají své výhody a nevýhody, ze kterých plyne jejich typické nasazení.
Nedává smysl "porovnání na načtení jedné stránky".


Kit

Re:SQLite vs MySQL Porovnání
« Odpověď #5 kdy: 13. 09. 2016, 18:58:34 »
Srovnáváš nesrovnatelné, jedná se o dva zcela jinak zaměřené produkty. SQLite je víceméně jen knihovna, která pracuje s "databází", která je v jednom souboru.  MySQL je už plnohodnotný DB server, kde platí klasická architektura klient-server.
Oba tyto systémy mají své výhody a nevýhody, ze kterých plyne jejich typické nasazení.
Nedává smysl "porovnání na načtení jedné stránky".

Takže pro běžné stránky, které z databáze převážně jen čtou, také doporučuješ SQLite?

pb.

Re:SQLite vs MySQL Porovnání
« Odpověď #6 kdy: 15. 09. 2016, 20:27:47 »
Srovnáváš nesrovnatelné, jedná se o dva zcela jinak zaměřené produkty. SQLite je víceméně jen knihovna, která pracuje s "databází", která je v jednom souboru.  MySQL je už plnohodnotný DB server, kde platí klasická architektura klient-server.
Oba tyto systémy mají své výhody a nevýhody, ze kterých plyne jejich typické nasazení.
Nedává smysl "porovnání na načtení jedné stránky".
Takže pro běžné stránky, které z databáze převážně jen čtou, také doporučuješ SQLite?

Moje  zkušenosti s oběma databázemi říkají, že je to trochu jinak: SQLite je plnohodnotná databázová knihovna a MySQL je... ehm... takové něco, co funguje v režimu klient-server a často dokonce i vrací rozumná data na základě sql dotazu.

Především se ale obě databáze skutečně nedají srovnávat. SQLite je výborná pro embedded aplikace (firefox, android), má pouze jednovláknový přístup, je omezený rozsah datových typů, neexistují triggery, pravidla, procedury atd. Použití SQLite pro webové stránky může být problematické kvůli nemožnosti přistupovat k jedné databázi z více míst najednou.

MySQL se snaží napodobit plnohodnotné databázové servery, takže je možné číst i zapisovat z více míst najednou (typické webové stránky), můžete používat různé datové typy, naučíte se příkazy jako "repair table", užijete si nesmyslná data vrácená v "select... group by..." a naučíte se používat monitorovací systémy pro restart serveru.

Doporučuji PostgreSQL.

pb.

Re:Porovnání SQLite vs. MySQL
« Odpověď #7 kdy: 15. 09. 2016, 20:29:08 »
Konstruktivně: Co s tím chcete dělat?

Kit

Re:SQLite vs MySQL Porovnání
« Odpověď #8 kdy: 15. 09. 2016, 23:19:34 »
Především se ale obě databáze skutečně nedají srovnávat. SQLite je výborná pro embedded aplikace (firefox, android), má pouze jednovláknový přístup, je omezený rozsah datových typů, neexistují triggery, pravidla, procedury atd. Použití SQLite pro webové stránky může být problematické kvůli nemožnosti přistupovat k jedné databázi z více míst najednou.

SQLite má triggery a transakce. Procedury se v ní dají psát také, jen se píší zcela jiným způsobem - jako procedury či funkce v hostitelském jazyce a jejich injektováním. SQLite nemá problém s vícenásobným čtením z více míst najednou. V tu samou chvíli lze z jednoho místa zapisovat. Jen si programátor každé přistupující aplikace musí dát pozor, aby pro přístup používal vždy pouze jedno vlákno. Mezi různými procesy však zámky normálně fungují.

SQLite je jednoduchou databázovou knihovnou, která si skvěle poradí s uloženými články, evidencí uživatelských přístupů, diskuzním fórem a dalšími webovými záležitostmi. Tedy tam, kde se velmi často čte, ale málo zapisuje. Je rychlá.

Pro aktivnější modifikaci dat, pokročilé datové typy a náročnější transakce bych doporučil zmíněnou databázi PostgreSQL.

pb.

Re:SQLite vs MySQL Porovnání
« Odpověď #9 kdy: 16. 09. 2016, 06:14:31 »
SQLite má triggery....

Fakt že jo! SQLite používám už od verze 2 a asi to nestačím sledovat. Už včera jsem si říkal "teď už umí sqlite i referenční integritu, jak to dělá bez triggerů?"

SQLite používám hodně a rád, více než jakoukoliv jinou databázi, nicméně člověku, který se ptá, jestli je načtení stránky rychlejší v SQLite nebo v MySQL bych doporučil PostgreSQL. Nevěřím, že člověk s takovým dotazem dovede domyslet do všech detailů, co to znamená "zapisovat v jednom vláknu".

Kit

Re:Porovnání SQLite vs. MySQL
« Odpověď #10 kdy: 16. 09. 2016, 06:52:55 »
S přechodem SQLite na verzi 3 se pár věcí změnilo. Už umí i neblokovaný zápis (současne lze číst z více procesů). V benchmarcích mi čtení SQLite vychází podstatně rychlejší, než čtení MySQL.

PostgreSQL je ještě o něco pomalejší, ale umí toho víc. U náročných dotazů je PostgreSQL nejlepší, ale jen málo webových aplikací tento potenciál dokáže využít.

pb.

Re:Porovnání SQLite vs. MySQL
« Odpověď #11 kdy: 16. 09. 2016, 09:32:15 »
Já na SQLite oceňuji především spolehlivost a nerozbitnost. Tlačím tu databázi do různých embedded řešení, tam jsou tyhle vlastnosti k nezaplacení. Měl jsem tu smůlu kdysi používat v "krabičkách" pro sběr dat databázi MySql a při tom množství instalací to bylo prakticky furt rozbité. LAMP programátor dostal kopanec do zádele, protože neuměl nic jiného, a předělalo se to na cosi úplně jiného.

S rychlostí bych už tak spokojený nebyl. Pokud je databáze větší (stovky MB až jednotky GB), může být oživení po pádu aplikace na delší dobu. Ale to se stává poměrně zřídka.

andy

Re:Porovnání SQLite vs. MySQL
« Odpověď #12 kdy: 16. 09. 2016, 09:55:34 »
Ak sa pytas na velkost datovych suborov, tak to si musis odmerat. Mysql ma rozne storage enginy a odhadoval by som, ze to ma na to vplyv. Zavisi to napr aj od indexov, ale aj od nastavenia transakcneho logu, ktory tam pri mysql musis zaratat. SQLite ma vsetko v jednom subore, pri mysql je to velkost adresara (treba tam zaratat aj technicke tabulky db). Zvazil by som aj, ze mysql ma nieco ako komprimovane tabulky a dokonca aj partitioning, ale inak by som sa mysql vyhol.

pb.

Re:Porovnání SQLite vs. MySQL
« Odpověď #13 kdy: 16. 09. 2016, 10:45:57 »
K velikosti SQLite: databáze si může vytvářet žurnálovací soubor, takže skutečné potřebné místo na disku může být třeba dvojnásobné proti velikosti samotného databázového souboru.

Re:SQLite vs MySQL Porovnání
« Odpověď #14 kdy: 16. 09. 2016, 10:54:01 »
naučíte se příkazy jako "repair table"
delal jste nekdo nekdy tohle pri InnoDB / XtraDB ?
Děkuji za možnost editace příspěvku.