sql >> Databasteknik >  >> RDS >> Mysql

Databasnormalisering för Facebook-liknande meddelandesystem

Du har rätt, ett så stort bord är inte användbart. Om du behöver ett verkligt meddelande som håller systemet bättre titta på NoSQL-lösningar (som HBase, Cassandra, MongoDB etc) måste du bara glömma allt du vet om relationsdatabaser.

Med MySQL kan du fortfarande göra något skalbart om du delar upp bordet i mycket små bitar. Få en tabell att behålla meddelanden för max 1k användare (du måste skriva alla meddelanden två gånger om inte båda användarna kommer från samma tabell). Behåll inte mer än 1k tabeller i en DB, skapa automatiskt en annan när denna gräns nås. Att ha flera databaser (även på en fysisk server) gör det enkelt för DBA att överföra var och en till en ny server när den nuvarande blir överbelastad. För att få meddelanden från en viss användare måste din kod hämta den nödvändiga DB/tabellen från en karta som du kommer att ha.




  1. Rails Migration byter kolumn för att använda Postgres-matriser

  2. Hitta N närmaste linjesträng från en punkt med MySQL Spatial Extensions

  3. Vad betyder ett kolon före en bokstavlig i en SQL-sats?

  4. Hur man använder svar från en Jmeter JDBC-förfrågan i en HTTP-förfrågan