MySQL pozwala nam tworzyć instrukcje select z użyciem opcji SQL_CACHE
i SQL_NO_CACHE
. Te opcje wpływają na buforowanie wyników zapytania w pamięci podręcznej zapytań. Ale do jakich zapytań lepiej użyć opcji SQL_CACHE
i dla której SQL_NO_CACHE
jeden? A może lepiej nie używać go w ogóle?Najlepsze praktyki MySQL do używania SQL_CACHE i SQL_NO_CACHE
Odpowiedz
Generalnie nie powinieneś w ogóle tego używać. SQL_CACHE
jest niezbędny tylko wtedy, gdy zapytania nie są buforowane domyślnie, które są w domyślnej konfiguracji. SQL_NO_CACHE
jest przydatny, jeśli wiesz, że określone zapytanie nie zostanie ponownie użyte w najbliższej przyszłości, szczególnie jeśli zestaw wyników jest duży. Celem jest uniknięcie zaśmiecania pamięci podręcznej wynikami, które nie będą potrzebne ponownie.
Używam SQL_NO_CACHE podczas debugowania prędkości zapytania.
Proszę dopracować. – Pacerier
Podczas testowania zapytań warto zmierzyć czas ich wykonywania, bez pobierania ich z pamięci podręcznej. Pobieranie z pamięci podręcznej jest znacznie szybsze niż pobieranie z bazy danych, dlatego porównywanie wyników bez wiedzy, czy pochodzi z bazy danych czy z pamięci podręcznej, nie ma sensu. –
- 1. Najlepsze praktyki dotyczące używania @ w C#
- 2. Najlepsze praktyki podczas włączania/używania "widoku częściowego"?
- 3. Konwencje i najlepsze praktyki Jira
- 4. Najlepsze praktyki optymalizacji baz danych MySQL
- 5. PHP/MySQL: Najlepsze praktyki operacji/przechowywania pieniędzy?
- 6. Najlepsze praktyki dla kopii zapasowej MySQL
- 7. najlepsze praktyki Nuget i TFS
- 8. Standardy jQuery i najlepsze praktyki
- 9. Najlepsze praktyki wdrażania (php/mysql) do dzielonego hostingu?
- 10. Najlepsze praktyki dotyczące używania znaczników w SLF4J/Logback
- 11. Jakie są najlepsze praktyki dotyczące używania stref dostępności EC2?
- 12. Relacje między-relacyjne i najlepsze praktyki
- 13. Jakie są najlepsze praktyki używania AngularJS z Django
- 14. Jakie są najlepsze praktyki dotyczące używania wymagania w Ruby?
- 15. Swagger Najlepsze praktyki
- 16. Najlepsze praktyki asynchronicznego Webrequestu
- 17. Najlepsze praktyki scalania SVN
- 18. Najlepsze praktyki modelowania LDAP
- 19. Najlepsze praktyki testowania integracji
- 20. Transakcje NHibernate Najlepsze praktyki
- 21. Android strings.xml Najlepsze praktyki?
- 22. DTO: najlepsze praktyki
- 23. Najlepsze praktyki wtrysku zależnego
- 24. Najlepsze praktyki LinqToSql
- 25. Najlepsze praktyki ASP.NET Security
- 26. CSS Outline najlepsze praktyki
- 27. CXF Wsdl2Java Najlepsze praktyki
- 28. OpenGL vào najlepsze praktyki
- 29. Shared NSDateFormatter - najlepsze praktyki?
- 30. Najlepsze praktyki anulowania zadań:
W szczególności w odniesieniu do SQL_NO_CACHE - użyj tego, jeśli buforowanie wyniku nie przyniesie korzyści później. Powodem, dla którego powinieneś to zrobić, jest to, że jeśli masz wiele zapytań, które przechowują w pamięci podręcznej, ale nigdy nie są używane, spowolnisz pracę z MySQL, ponieważ spędza on coraz więcej czasu na zarządzaniu pamięcią podręczną. Staje się to szczególnie widoczne, gdy ludzie ustawiają naprawdę duże rozmiary query_cache, gdy czas na opróżnianie starych wpisów rośnie wraz z rozmiarem. Dlatego istnieje opcja 0,1,2 do zmiany zachowania query_cache w mySQL. – Ross
@Michael, W rzeczywistości zalecane ustawienie dla serwerów produkcyjnych polega na włączaniu buforowania ** off ** zapytania. – Pacerier
@Pacerier To naprawdę zależy od obciążenia. –