Mam strony internetowe, które pobierają 10 - 20 zapytań do bazy danych, aby uzyskać wszystkie wymagane dane.Czy można wykonać asynchroniczne/równoległe zapytanie do bazy danych w aplikacji Django?
Normalnie po wysłaniu zapytania wątek/proces Django jest blokowany w oczekiwaniu na wyniki, a następnie wznawia wykonywanie, dopóki nie dotrze do następnego zapytania.
Czy istnieje sposób na asynchroniczne wydawanie wszystkich zapytań, aby mogły być przetwarzane równolegle przez serwer (y) bazy danych?
Używam MySQL, ale chciałbym usłyszeć o rozwiązaniach również dla innych baz danych. Na przykład usłyszałem, że Postgresql ma asynchroniczną bibliotekę klienta - w jaki sposób powinienem użyć tego w tym przypadku?
Uruchamianie serwera ampq nie jest obowiązkowe. Prosta kolejka memcache lub redis działa dobrze. Nie * nie * osobiście polecam MongoDB. Pomijając fakt, że django-norel jest w dużej mierze abandonware (wciąż w wersji 1.4, 1.4 został usunięty w 2013 r., A rozszerzony suppoort (bezpieczeństwo itp.) Został usunięty w 2015 r.), MongoDB naprawdę jest szybszy tylko wtedy, gdy utracisz pewien stopień zgodności ACID przez działa jako magazyn w pamięci. I moim zdaniem to straszna sprawa dla danych klientów. – Shayne
System zaplecza redis jest przedmiotem debaty o wycofaniu. FYI. – DylanYoung