Jak velký je databáze MySQL dostat před začátkem představení degradovat

hlasů
253

Na jakém místě se databáze MySQL začít ztrácet výkon?

  • Má velikost fyzické databáze na tom?
  • Ještě počet záznamů na tom?
  • Je nějaký výkon degradace lineární nebo exponenciální?

Mám to, co považuji za velké databáze, se zhruba záznamů 15M, které zaujímají téměř 2 GB. Na těchto čísel na základě, existuje nějaká pobídka pro mě vyčistit data ven, nebo jsem v bezpečí, aby mohl pokračovat ve škálování za několik let?

Položena 04/08/2008 v 15:31
zdroj uživatelem
V jiných jazycích...                            


14 odpovědí

hlasů
169

Velikost fyzického databáze nezáleží. Počet záznamů nevadí.

Podle mých zkušeností je největším problémem, že budete spouštět do není velikost, ale počet dotazů můžete zvládnout najednou. S největší pravděpodobností budete muset přesunout na konfiguraci master / slave, takže čtení dotazy lze spustit proti otrokům a write dotazy spustit proti mistrovi. Nicméně, pokud nejste připraveni na to ještě, vždy můžete vyladit své indexy pro dotazy jsou spuštěny na urychlení doby odezvy. Také tam je hodně ladění můžete udělat pro síťový zásobník a jádra v Linuxu, která pomůže.

Měl jsem důl dostat až na 10 GB, jen s mírným počtu připojení a manipulovat požadavky v pohodě.

Chtěl bych nejprve zaměří na své indexy, pak mají admin vzhled serveru na vašem operačním systému, a je-li vše, co nepomůže to může být čas k provedení konfigurace master / slave.

Odpovězeno 04/08/2008 v 16:26
zdroj uživatelem

hlasů
71

Obecně se jedná o velmi subtilní záležitost a není triviální vůbec. Doporučuji vám přečíst mysqlperformanceblog.com a High Performance MySQL . Opravdu si myslím, že obecně není odpověď na to.

Já jsem pracoval na projektu, který má databázi MySQL s téměř 1 TB dat. Nejdůležitějším faktorem je škálovatelnost RAM. Pokud jsou indexy tabulek vejde do paměti, a vaše dotazy jsou vysoce optimalizované, můžete sloužit přiměřené množství žádostí s průměrným strojem.

Počet záznamů to nevadí, v závislosti na tom, jak se vaše stoly vypadat. Je rozdíl mít hodně varchar pole nebo jen pár ints nebo touží.

Fyzická velikost databáze záležitostí stejně: myslím záloh, například. V závislosti na motoru, vaše fyzické db soubory na růst, ale ne zmenšit, například s InnoDB. Takže odstranění hodně řádků, nepomůže srazit své fyzické soubory.

Je tu hodně k této problematice, a stejně jako v mnoha případech ďábel je v detailech.

Odpovězeno 04/08/2008 v 19:44
zdroj uživatelem

hlasů
33

Velikost databáze záleží . Pokud máte více než jednu tabulku s více než milion záznamů, pak výkon začne skutečně degradovat. Počet záznamů ovšem také vliv na výkon: MySQL může být pomalé s velkými tabulkami . Pokud máte hit jeden milion záznamů budete mít problémy s výkonem, pokud indexy nejsou nastaveny právo (například žádné indexy pro pole v „Kde prohlášení“ nebo „ON podmínky“ ve spojení). Pokud jste hit 10 milionů desek, začnete se dostat problémy s výkonem, i když máte všechny vaše indexy v pořádku. Inovace hardwaru - přidání více paměti a větší výkon procesoru, zejména paměť - často přispět ke snížení nejzávažnější problémy opět zvyšuje výkonnost, alespoň do určité míry. Například 37 signály šel od 32 GB paměti RAM 128 GB paměti RAM pro databázového serveru Basecamp.

Odpovězeno 26/01/2012 v 11:33
zdroj uživatelem

hlasů
20

Chtěl bych nejprve zaměří na své indexy, než má správce serveru podívat na váš operační systém, a je-li vše, co není to pomoci by mohl být čas na konfiguraci Master / Slave.

To je pravda. Další věc, která obvykle pracuje, je jen snížit množství dat, která je opakovaně pracoval. Máte-li „stará data“ a „nové údaje“ a 99% z vašich dotazů pracovat s novými daty, jen přesunout všechna stará data k jinému stolu - a nedívejte se na něj)

-> Podívejte se na rozdělení .

Odpovězeno 11/08/2008 v 20:19
zdroj uživatelem

hlasů
19

2 GB a asi 15M záznamů je velmi malá databáze - jsem běžet ty, mnohem větší na Pentium III a všechno se ještě běžet hodně rychle .. Pokud váš je pomalý, že je design problém databáze / aplikace, není mysql (!) jeden.

Odpovězeno 05/08/2010 v 10:03
zdroj uživatelem

hlasů
16

Je to trochu zbytečné mluvit o „výkon databáze“, „výkon dotazu“ je lepší termín zde. A odpověď zní: záleží na dotaz, data, která působí na, indexy, hardware, atd. Můžete získat představu o tom, kolik řádků se bude naskenován a jaké indexy se bude používat EXPLAIN syntaxi.

2 GB není opravdu počítat jako „velké“ databáze - je to spíše střední velikosti.

Odpovězeno 06/08/2008 v 20:53
zdroj uživatelem

hlasů
9

Bod je, aby zvážila i účel systému a dat ve dne na den.

Například pro systém s GPS monitoringu vozidel není relevantní údaje dotaz z pozic vozu v minulých měsících.

Z tohoto důvodu mohou být data předána do jiných historických tabulek pro případné konzultace a zkrátit dobu spuštění na každodenní dotazy.

Odpovězeno 06/12/2012 v 06:13
zdroj uživatelem

hlasů
9

Jednou jsem byl vyzván, aby se podívat na MySQL, který měl „přestal pracovat“. Zjistil jsem, že soubory DB bydleli na Network Appliance filer namontován s NFS2 as maximální velikost souboru 2 GB. A opravdu, v tabulce, která se přestala přijímat transakce byla přesně 2 GB na disku. Ale s ohledem na výkonové křivky Bylo mi řečeno, že to bylo pracoval jako mistrovství až do nefungovalo vůbec! Tato zkušenost slouží vždy pro mě jako pěkný připomenutí, že tam pořád rozměry nahoře a dole ten, který přirozeně podezření.

Odpovězeno 06/08/2008 v 05:27
zdroj uživatelem

hlasů
8

Také pozor na složité spojení. Složitost transakcí může být významným faktorem kromě objemu transakcí.

Refactoring těžké dotazů občas nabízí velký nárůst výkonu.

Odpovězeno 04/08/2008 v 20:01
zdroj uživatelem

hlasů
4

Jsem v současné době spravuje databázi MySQL na Amazon cloud infrastrukturu, která se rozrostla na 160 GB. Výkon dotazu je v pořádku. To, co se stalo noční můrou je zálohování, obnova, přidávání otroci, nebo cokoliv jiného, ​​která se zabývá celý datové sady, nebo dokonce DDL na rozsáhlých tabulek. Získání čistý import souboru výpisu stala problematickou. Aby byl tento proces dostatečně stabilní pro automatizaci, různé volby musely být provedeny upřednostňovat stabilitu výkonu. Pokud bychom někdy měli zotavit se z katastrofy využívající záložní SQL, měli bychom být mimo provoz několik dní.

Horizontálně škálování SQL je také docela bolestivé, a ve většině případů vede k jejímu používání způsobem, pravděpodobně jste neměl v úmyslu, když jste se rozhodli, aby vaše data v SQL na prvním místě. Střepy, číst otroky, více hlavních a další, všichni jsou opravdu na hovno řešení, které přidávají složitost všemu, co kdy udělat s DB, a ani jeden z nich řeší problém; Pouze zmírňuje ho v některých ohledech. Chtěl bych důrazně doporučujeme při pohledu na pohybující se některé z vašich dat z MySQL (nebo vlastně jakýkoli SQL), když se začnete blížit datový soubor o velikosti, kde tyto druhy věcí se stal problémem.

Odpovězeno 30/06/2017 v 16:25
zdroj uživatelem

hlasů
4

Výkon může snížit v řádu několika tisíc řádků, pokud databáze není správně navržena.

Máte-li správné indexy, používat správné motory (nepoužívat MyISAM, kde se očekávají více DML), použití rozdělení přidělit správnou paměť v závislosti na použití a samozřejmě mít funkční konfigurace serveru MySQL dokáže zpracovat data, a to iv terabajtů!

Vždy existují způsoby, jak zlepšit výkon databáze.

Odpovězeno 19/09/2013 v 12:26
zdroj uživatelem

hlasů
2

Velikost databáze záleží, pokud jde o bytech a řádků čísla tabulky. Můžete si všimnout velký výkonnostní rozdíl mezi světlem databází a blob plněné jeden. Poté, co dostal moje žádost zasekl, protože jsem si binární obraz uvnitř polí namísto udržení obrazy v souborech na disku a uvedení pouze názvy souborů v databázi. Iterace velké množství řádků na druhou stranu není zadarmo.

Odpovězeno 05/06/2017 v 10:27
zdroj uživatelem

hlasů
2

Záleží na vašem dotazu a validaci.

Například jsem pracoval s tabulkou 100 000 léků, které má sloupec generický název, pokud má více než 15 znaků pro každý lék v této tabulce .I dát dotaz porovnat druhový název drog mezi dvěma tables.The dotazu trvá více minut run.The Same, pokud jste v porovnání s léky pomocí indexu s drogami, za použití sloupce id (jak bylo zmíněno výše), to trvá jen několik sekund.

Odpovězeno 29/11/2016 v 12:05
zdroj uživatelem

hlasů
0

No to doesnt opravdu jedno. Rychlost MySQL je asi 7 milionů řádků za sekundu. Takže můžete škálovat to trochu

Odpovězeno 25/05/2019 v 12:18
zdroj uživatelem

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more