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

Jak zaimplementować zmaterializowany widok za pomocą MySQL?

Prowadzę projekt o nazwie Flexviews (http://github.com/greenlion/swanhart-tools ), która dodaje do MySQL stopniowo odświeżane widoki zmaterializowane (inaczej szybkie odświeżanie), nawet w przypadku widoków korzystających z łączeń i agregacji. Pracuję nad tym projektem od trzech lat. Zawiera narzędzie do przechwytywania zmian danych, które umożliwia odczytywanie dzienników bazy danych. Nie są używane żadne wyzwalacze.

Zawiera dwie metody odświeżania. Pierwsza jest podobna do twojej metody, z tą różnicą, że budowana jest nowa wersja, a następnie RENAME TABLE służy do zamiany nowej na starą. W żadnym momencie widok nie jest niedostępny do zapytania, ale przez krótki czas używane jest 2x więcej miejsca.

Druga metoda to prawdziwe „szybkie odświeżanie”, ma nawet obsługę agregacji i złączeń.

Jest na ten temat post na blogu:http://www.mysqlperformanceblog.com/2011/04/04/flexviews-part-3-improving-query-performance-using-materialized-views/

Flexviews jest znacznie bardziej zaawansowany niż przykład FromDual, do którego odwołuje się astander.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. CONCAT wiele pól do jednego pola, z pojedynczym odstępem

  2. Czy mogę uruchomić pętlę w MySQL bez użycia procedury/funkcji?

  3. Dynamiczna rozwijana lista dla różnych krajów, stanów, lokalizacji geograficznych?

  4. Jak ustawić SQL_BIG_SELECTS=1 w instrukcji Laravel Join?

  5. Prawidłowy sposób na skonfigurowanie bazy danych MYSQL do wyszukiwania powiązanych tagów?