sql >> Databasteknik >  >> RDS >> Mysql

Praktiskt av flera databaser per klient kontra en databas

Ja, det är möjligt och mitt företag gör det. Jag tänker absolut inte säga att det är smart. Vi har ett SAAS marknadsföringsautomationssystem. Vissa klienters databaser har 1 miljon+ poster. Vi hanterar en andra "vanlig" databas som har en "uppfyllelse"-tabell som spårar e-post, brev, telefonsamtal, etc med över 4 miljoner poster, plus många andra mycket stora delade tabeller. Med korrekt indexering, optimering, underhåll av en separat DB-only-server och eventuellt klustring (vilket vi ännu inte behöver göra) kan du hantera MYCKET data......i många fall, de som tror att det kan bara hantera några hundra tusen skivor arbete på en konkurrerande produkt för en levande. Om du fortfarande tvivlar på om det är giltigt, tänk på att per MySQL:s klustringsmått kan ett 8-serverkluster hantera 2,5 miljoner uppdateringar PER SEKUND. Inte för illa alls.....

Problemet med att använda två databaser är att jonglera med flera anslutningar. Är det tufft? Nej inte direkt. Du skapar olika objekt och refererar till dina anslutningsklasser utifrån vilken databas du vill ha. I vårt fall slog vi huvuddatabasens företagsklass för att härleda klientens db-namn och bygger sedan den andra anslutningen baserat på det. Men när du jonglerar de anslutningarna fram och tillbaka kan du stöta på fel som kräver extra felsökning. Det är inte bara "Är min fråga giltig?" men "Får jag verkligen rätt databasanslutning?" I vårt fall kan en avbruten session orsaka att alla möjliga PDO-fel utlöses eftersom systemet inte längre kan hålla reda på vilken klientdatabas som ska komma åt. Dessutom, ur underhållssynpunkt, är det en skrämmande process att försöka driva tabellstrukturuppdateringar till 100 olika live-databaser. Ja, det kan automatiseras. Men ett fall och du har slagit ner MASSOR av människor och gjort massor av extra arbete för dig själv. Beräkna nu den extra utveckling och testning som krävs för att jonglera med anslutningar och pusha uppdateringar...det kommer att vara ditt mått på om det är värt besväret.

Min rekommendation? Hitta en värd som låter dig sätta två maskiner på samma lokala nätverk. Vi valde Linode, men vem du använder är irrelevant. Börja med din dedikerade databasserver, planera i förväg för att göra klustring när det är nödvändigt. Håll allt ditt innehåll i en DB, indexera och optimera religiöst. Till sist, hitta en RIKTIGT bra DB-kille och behandla honom väl. Med så mycket data skulle en bra DBA vara ett måste.




  1. Varför visas Unicode-tecken korrekt i databasen, men som ? vid utskrift i Java via Hibernate?

  2. Lägga till fler datalager till Microsoft Power BI

  3. Vilket är formatet för PostgreSQL-anslutningssträngen/URL?

  4. Java - hur man batchdatabasinlägg och uppdateringar