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

Model wartości atrybutu jednostki — alternatywa wydajności?

Pierwszy , czasami ten model znacznie ułatwia wykonywanie zapytań o dane. Zadałem pytanie kilka dni temu tutaj a niektórzy użytkownicy sugerowali, dlaczego nie zmieniłem modelu na formularz 1NF, aby ułatwić wyszukiwanie danych. Dopiero gdy zorientowali się, że utknąłem z tym projektem, udzielili odpowiedzi na pytanie. Chodzi o to, że miałem szczęście mieć tylko 12 kolumn do zsumowania; w przeciwnym razie, jeśli moja tabela zawierała 300 kolumn, być może żaden użytkownik nie zadał sobie trudu, aby napisać zapytanie dotyczące tego problemu. :-)

Drugi , czasami implementacja tego projektu jest łatwiejsza ze względu na pewne ograniczenia naturalnie narzucane przez bazy danych. Jeśli Twój meta_key wartości zawierają długie wartości większe niż 30 znaków, albo musisz je skrócić i gdzieś wykonać mapowanie, albo będzie to prawdopodobnie jedyna opcja, jaką możesz mieć.

Wreszcie , wydajność jest bardzo ważna; to prawda. Ale z drugiej strony istnieją pewne techniki, które można zastosować, aby poprawić wydajność; na przykład poprzez tworzenie odpowiednich indeksów, partycjonowanie tabel i tak dalej.

W tym przypadku rozmiary stołów są bardzo małe. Tak więc, chyba że Twoje zapytania są bardzo skomplikowane, na przykład wymagają ciężkich obliczeń i skomplikowanych złączeń i agregacji, oraz jeśli aplikacja nie jest wrażliwa na małe ułamki czasu, myślę, że nie ucierpibyś na wydajności, gdybyś przyjął ten model.

Na końcu , jeśli nadal zbytnio martwisz się wydajnością, sugeruję utworzenie obu modeli, wypełnienie ich losowymi lub rzeczywistymi danymi i przeanalizowanie kosztów planu, aby zobaczyć, który model lepiej odpowiada Twoim potrzebom.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak działa zawieszenie transakcji w MySQL?

  2. Próba zrozumienia Nie można znaleźć indeksu FULLTEXT pasującego do błędu listy kolumn

  3. Próba migracji lokalnego serwera mysql do AWS

  4. Pobierz wszystkie rekordy rodziców/dzieci z bazy danych na Laravel (dane hierarchiczne)

  5. Android — zapytanie JSON mySQL daje wyjątek NetworkOnMainThreadException