sql >> Databáze >  >> RDS >> Mysql

Praktičnost více databází na klienta vs jedna databáze

Ano, je to možné a moje společnost to dělá. Rozhodně ale netvrdím, že je to chytré. Máme systém automatizace marketingu SAAS. Některé databáze klientů mají více než 1 milion záznamů. Zabýváme se druhou „společnou“ databází, která má tabulku „splnění“ sledující e-maily, dopisy, telefonní hovory atd. s více než 4 miliony záznamů a řadu dalších velmi velkých sdílených tabulek. Se správným indexováním, optimalizací, údržbou samostatného serveru pouze s DB a případně shlukováním (což zatím nemusíme dělat) můžete zpracovat HODNĚ dat......v mnoha případech ti, kteří si myslí, že mohou živit se pouze několika stovkami tisíc záznamů práce na konkurenčním produktu. Pokud stále pochybujete, zda je to platné, zvažte, že podle klastrových metrik MySQL může klastr s 8 servery zpracovat 2,5 milionu aktualizací ZA SEKUNDU. Vůbec ne příliš ošuntělý......

Problém s použitím dvou databází je žonglování s více připojeními. je to těžké? Ne, fakt ne. Vytvoříte různé objekty a odkazujete na své třídy připojení na základě databáze, kterou chcete. V našem případě jsme narazili na třídu společnosti hlavní databáze, abychom odvodili název db klienta a na základě toho vytvořili druhé připojení. Ale když žonglujete s těmito připojeními tam a zpět, můžete narazit na chyby, které vyžadují další ladění. Není to jen "Je můj dotaz platný?" ale "Dostávám skutečně správné připojení k databázi?" V našem případě může zrušená relace způsobit spuštění nejrůznějších chyb PDO, protože systém již nemůže sledovat, ke které databázi klientů má přistupovat. Navíc z hlediska udržovatelnosti je to děsivý proces, který se snaží protlačit aktualizace struktury tabulek do 100 různých živých databází. Ano, lze to automatizovat. Ale jedno uklouznutí a vy jste srazili HODNĚ lidí a udělali pro sebe spoustu práce navíc. Nyní si spočítejte další vývoj a testování potřebné pro žonglování s připojeními a push aktualizace...to bude vaše měřítko, zda se to vyplatí.

Moje doporučení? Najděte hostitele, který vám umožní umístit dva stroje do stejné místní sítě. Vybrali jsme Linode, ale to, koho používáte, je irelevantní. Začněte s dedikovaným databázovým serverem a naplánujte si shlukování, když to bude nutné. Udržujte veškerý svůj obsah v jedné databázi, indexujte a optimalizujte nábožensky. Konečně si najdi OPRAVDU hodného DB chlapa a chovej se k němu slušně. S takovým množstvím dat by byl skvělý DBA nutností.




  1. Kde nastavím kódování znaků v aplikaci Java Swing, abych mohl zapisovat hindštinu do databáze MySQL?

  2. Nejoblíbenější systémy pro správu databází na světě

  3. Použijí se indexy, když se dotazujete na podmnožinu sloupců indexu?

  4. jak odeslat poštu z mysql pomocí uložených procedur?