sql >> Databasteknik >  >> RDS >> Mysql

PHP-webbapplikation:fråga om bästa praxis för mysql-databasdesign

Jag pratade med databasarkitekten från wordpress.com, värdtjänsten för WordPress. Han sa att de började med en databas som var värd för alla kunder tillsammans. Innehållet på en enda bloggsida är verkligen inte så mycket, trots allt. Det är naturligt att en enda databas är mer hanterbar.

Detta fungerade bra för dem tills de fick hundratals och tusentals kunder, de insåg att de behövde skala ut , köra flera fysiska servrar och vara värd för en delmängd av sina kunder på varje server. När de lägger till en server skulle det vara lätt att migrera enskilda kunder till den nya servern, men svårare att separera data i en enda databas som tillhör en enskild kunds blogg.

När kunderna kommer och går, och vissa kunders bloggar har högvolymaktivitet medan andra blir inaktuella, blir ombalanseringen över flera servrar ett ännu mer komplext underhållsjobb. Det är också lättare att övervaka storlek och aktivitet per enskild databas.

Gör likaså en säkerhetskopiering eller återställning av databasen av en enda databas som innehåller terrabyte med data, kontra individuella databassäkerhetskopior och återställningar på några megabyte vardera, är en viktig faktor. Tänk på:en kund ringer och säger att deras data har SNAFU'd på grund av dålig datainmatning, och kan du vänligen återställa data från gårdagens säkerhetskopia? Hur skulle du återställa one kundens data om alla dina kunder delar en enda databas?

Så småningom bestämde de sig för att dela upp i en separat databas per kund Även om det var komplext att hantera, erbjöd de dem större flexibilitet och de omarbetade sin värdtjänst till denna modell.

Alltså från en datamodellering perspektiv verkar det vara rätt sak att göra för att hålla allt i en enda databas, viss databasadministration uppgifter blir lättare när du passerar en viss brytpunkt för datavolymen.



  1. En enkel introduktion till att använda MySQL på Linux-terminalen

  2. Multiplikation av data från MySQL-raden

  3. Gå med i frågan med endast kolumner som har alla värden i "in"-satsen

  4. 13 bästa metoder för SQL Server-säkerhet