Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wydajność MySQL JOIN na 1 dużym stole i wielu małych stołach

Ponieważ jest to relacja „jeden do wielu”, przechowywałbym je w osobnej tabeli. Optymalizator zapytań serwera SQL (pod maską) będzie w stanie przeanalizować 250 rekordów na tyle szybko, że nie powinno to być problemem. Ponadto, w zależności od długości wartości w mniejszej tabeli, zaoszczędzisz miejsce na dysku, nie przechowując ich setki milionów dodatkowych razy. Jeśli jednak wydajność raportowania ma ogromne znaczenie, możesz zapisać je w jednej „spłaszczonej” tabeli — jak struktura hurtowni danych, bez łączeń. To na pewno będzie szybsze, ale poświęcisz miejsce na dane i ładnie ustrukturyzowaną relacyjną bazę danych.

Wszystko to powiedziawszy, wybrałbym opcję 1. Ale powinieneś być w stanie łatwo przechowywać dane w nowej tabeli w formacie opcji 2 - zapytanie względem obu z nich - a następnie samodzielnie ocenić wydajność. Spodziewam się, że nie będzie to dużej różnicy, zwłaszcza biorąc pod uwagę pojemność mniejszych stołów.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. błąd:nie można znaleźć php_pdo_driver.h podczas instalacji pdo_mysql

  2. SQLAlchemy:Utwórz zapytanie usuwające za pomocą samodzielnego łączenia w MySQL

  3. Zapytanie sql, aby znaleźć sumę z indywidualnym identyfikatorem

  4. Generuj unikalne losowe znaki alfanumeryczne o długości 7 znaków

  5. Używanie zamienników z surowym zapytaniem Sequelize:unikanie pojedynczych cudzysłowów?