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

Mieszanie wyników z różnych kategorii, uporządkowanych według wyniku w MySQL

Idź i zdobądź 20 najlepszych. Jeśli nie spełniają wymagań, wykonaj dodatkowe zapytanie, aby znaleźć brakujące elementy. Powinieneś być w stanie wymyślić pewną równowagę między liczbą zapytań a liczbą wierszy, z których każdy zwraca.

Jeśli znalazłeś się w pierwszej setce, może ona spełniać wymagania w 90% przypadków i byłaby tańsza i szybsza niż 10 oddzielnych zapytań.

Gdyby to był SQL Server, mógłbym bardziej pomóc...

Właściwie mam inny pomysł. Uruchamiaj proces co 5 minut, który oblicza listę i buforuje ją w tabeli. Spraw, aby DML w powiązanych tabelach unieważnił pamięć podręczną, aby nie była używana do czasu ponownego wypełnienia (być może artykuł został usunięty). Jeśli pamięć podręczna jest nieprawidłowa, wrócisz do obliczania jej w locie... A mimo to mógłbyś użyć tego do ponownego zapełnienia pamięci podręcznej.

Możliwe jest strategiczne zaktualizowanie buforowanej listy zamiast ponownego jej obliczania. Ale to może być prawdziwym wyzwaniem.

Powinno to pomóc zarówno w szybkości zapytań, jak i zmniejszeniu obciążenia bazy danych. Nie powinno mieć większego znaczenia, jeśli lista artykułów jest nieaktualna o 5 minut. Cholera, nawet 1 minuta może zadziałać.



  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 uzyskać listę widoków MySQL?

  2. budowanie dynamicznego zapytania w mysql i golang

  3. Pobieranie danych z MySQL w partiach za pomocą Pythona

  4. Coś szybszego niż get_headers()

  5. czy PDO::PARAM_INT jest nadmiarowe?