Mysql
 sql >> база данни >  >> RDS >> Mysql

Нормализиране на базата данни за подобна на facebook система за съобщения

Прав си, такава голяма маса не може да се използва. Ако имате нужда от реална система за поддържане на съобщения, погледнете по-добре решенията на NoSQL (като HBase, Cassandra, MongoDB и т.н.), просто ще трябва да забравите всичко, което знаете за релационните бази данни.

С MySQL все пак можете да направите нещо мащабируемо, ако разделите таблицата на много малки парчета. Направете една таблица да съхранява съобщения от максимум 1k потребители (ще трябва да напишете всички съобщения два пъти, освен ако и двамата потребители не са от една и съща таблица). Освен това съхранявайте не повече от 1k таблици в една DB, автоматично създавайте друга, когато този лимит бъде достигнат. Наличието на няколко бази данни (дори на един физически сървър) ще улесни DBA да прехвърли всяка към нов сървър, когато текущият се претовари. За да получите съобщения от определен потребител, вашият код ще трябва да получи необходимата DB/таблица от карта, която ще имате.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ако друго е клаузата WHERE

  2. MySQL VS Postgres/POSTGIS поддръжка на пространствена база данни

  3. mysql_fetch_array() очаква параметър 1 да бъде проблем с ресурсите

  4. MIN() срещу LEAST() в MySQL:Каква е разликата?

  5. Flask SQLAlchemy не затваря връзките с MySQL база данни