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

Jaka jest najlepsza wydajność pobierania wyników MySQL EAV jako tabeli relacyjnej?

Najlepszym sposobem, aby się tego dowiedzieć, byłoby oczywiście przetestowanie. Odpowiedź może być różna w zależności od rozmiaru zbioru danych, liczby różnych meta-kluczy, ich rozmieszczenia (czy wszystkie podmioty mają wartości dla wszystkich meta-kluczy? czy tylko dla kilku z nich?), ustawień Twojej bazy danych serwer i prawdopodobnie wiele innych czynników.

Gdybym miał zgadywać, powiedziałbym, że koszt JOIN operacje w opcji 2 byłyby mniejsze niż koszt GROUP BY oraz funkcje agregujące potrzebne w opcjach 1 i 3.

Spodziewam się więc, że znajdę opcję 2 szybciej niż 1 i 3.

Aby zmierzyć opcję 4, musisz wziąć pod uwagę więcej czynników, ponieważ aplikacja może znajdować się na innym serwerze, więc należy wziąć pod uwagę obciążenie dwóch serwerów (bazy danych i aplikacji) oraz liczbę klientów, którzy będą żądać tych wyników .

Uwaga dodatkowa:potrzebujesz GROUP BY e.ID w opcjach 1 i 3.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Typ Mysql Time daje ArgumentError:argument jest poza zakresem w Rails, jeśli trwa ponad 24 godziny

  2. Błąd krytyczny PHP:Niezłapany wyjątek PDO:nie można znaleźć sterownika

  3. Zliczanie ilości wykonanych zapytań

  4. zdobądź SUMA każdej Osoby według PersonID

  5. MySQL nie używa indeksów (Korzystanie z sortowania plików) podczas korzystania z ORDER BY