it-swarm-eu.dev

Co je lepší / rychlejší? MySql nebo FileSystem?

Představme si web, který je adresářem lidí. Pro každou osobu může existovat profilová fotka a životopis.

Přiznám své SQL dotazy by mohly být lepší, ale obecně by to, co by bylo rychlejší a spotřebovávat menší výpočetní výkon.

Chcete-li zkontrolovat, zda soubor existuje, otevřete jej nebo

zkontrolovat proti MySql, zda bio existuje a zobrazit ji.

Jsem si jistý, že ve výše uvedeném případě bude souborový systém kouřit databázi mysql.

Co když udělám z databáze txt soubor s oddělováním jen pro čtení?

Co je v tomto případě rychlejší?

Existuje nějaký bod, kde má-li soubor txt příliš mnoho záznamů, je lepší použít MySql?

Systém souborů je užitečný, pokud hledáte konkrétní soubor, protože operační systémy udržují určitý index. Obsah souboru txt však nebude indexován, což je jedna z hlavních výhod databáze. Dalším je pochopení relačního modelu, takže data nemusí být znovu a znovu opakována. Dalším je pochopení typů. Pokud máte soubor txt, budete muset analyzovat čísla, data atd.

Takže - v některých případech pro vás může systém souborů fungovat, ale rozhodně ne všechny.

17
Rob Farley

To opravdu záleží na tom, co děláte. Obecně bude rychlost, kterou můžete otevřít soubor pro čtení, lepší než rychlost, kterou můžete navázat síťové připojení. Pro velmi jednoduché operace je tedy souborový systém rozhodně rychlejší. Souborové systémy pravděpodobně také porazí RDBMS pro hrubou propustnost čtení, protože je zde menší režie. Ve skutečnosti, pokud o tom přemýšlíte, databáze nemůže být nikdy rychlejší než souborový systém, na kterém sedí, pokud jde o hrubou propustnost.

U velmi složitých operací bude souborový systém pravděpodobně velmi pomalý. Například:

Přečtěte si 10 řádků z tohoto 1 miliardy řádkového souboru a poté vyhledejte odpovídající řádky v tomto druhém souboru. Je mi líto, pokud to musíte udělat. Dobrý databázový server však má strategie, jak toho dosáhnout rychle a dobře, takže nevynalézáte kolo.

Navíc musíte opravdu přijít na to co, co děláte. Jaká data ukládáte? Jak to chceš změnit? Pokud se jedná o obrazové soubory o velikosti 100 000, bude vaše řešení vypadat velmi odlišně, než kdyby se jednalo o adresář pro 100 000 lidí. (Možná LDAP? Nebo databáze SQL? Možná záleží na tom, co děláte.) Klíčem je zde vybrat nástroje, které odpovídají tomu, co děláte a které vám dávají místo pro přidání více použití, než cokoli, co se zdá být pro některé nejrychlejší spíše abstraktní případ použití. Databáze jsou skvělé nástroje, ale na takovou otázku nemůžete dostat dobrou odpověď.

A konečně předčasná optimalizace je kořenem všeho zla. Vyberte si užitečné nástroje a zbytek zjistěte později.

12
Chris Travers

Systém souborů může být zpočátku rychlejší, ale pochybuji o tom. S rostoucí velikostí dat však budete pravděpodobně muset restrukturalizovat systém souborů, aby se zachoval výkon. Kromě jejich zřejmé schopnosti indexovat více atributů mají databáze sklon lépe se škálovat.

Webové mezipaměti, které fungují podobně jako to, co zvažujete, používají k udržení výkonu adresářový strom. Mají také tendenci být v relativně pevném měřítku, takže se nemusejí vypořádat s rostoucím měřítkem.

Pro tento druh aplikace bych začal s databází, protože lépe vyhovuje vašim potřebám. Z dlouhodobého hlediska to bude mnohem lepší. Ve srovnání s většinou souborových systémů bude databáze také efektivnější místo.

5
BillThor

Vždy ráda přicházím na tato fóra a čte všechny těžké databáze guruů nadhazování, které souborový systém nemůže udělat tak rychle jako databáze. Naopak, správně uspořádaný strom, dobře navržené hashtables a jejich uložení jako objektu do souboru poskytne stejnou rychlost jako databáze a z mých testů. Správně navržený hashtable a adresářový strom vyhraje pokaždé. Cesta méně nad hlavou. Nedávno jsem se vzdálil od databázového programování a více na stromě souborů pro jednoduchost a přenositelnost programu. Žádná DB znamená snadnou zálohu, stačí zapnout váš strom nahoru a jít. Je to velmi pěkné a doporučení programovat tímto způsobem pro jednorázové klienty s malými aplikacemi. Podívejte se na velké pic mám čas navrhnout své vlastní, nebo jen využít to, co je již tam jako db. Já osobně rád ukládám své objekty do souboru a používám je později, jen sledujte velikost tabulek a podívejte se do RandomAccessFile, abyste mohli rychle hledat rozložení jako databáze a rozdělit je na hashtable objekty . Užívat si. Nezapomeňte, jaká data uložená v souboru spotřebují občas dvojnásobné využití paměti v závislosti na vašem kódu. Tabulka hash sama o sobě a obvykle, kde ji konzumujete k zobrazení.

1
JDeCarlo