Почему база данных RDS MySQL с Django работает очень медленно при выполнении очень простых запросов?
Я разработал простое приложение с Django, Django REST Framework и MySQL, и все прекрасно работает на моей локальной машине.
Я хочу загрузить приложение на AWS, поэтому я начал с создания экземпляра RDS MySQL и подключил его к моему приложению Django. После этого и запуска миграций приложение стало работать очень медленно.
Я знаю, что локальная база данных должна быть быстрее экземпляра RDS, но разница в скорости слишком велика.
В качестве примера, вот один из взглядов, который я имею:
class DeckApi(viewsets.ViewSet):
permission_classes = [IsAuthenticated]
def list(self, request, *args, **kwargs):
qs = Deck.objects.filter(user=request.user)
serializer = DeckSerializer(qs, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)
На один вызов этого представления уходит около 5 или 10 секунд, а база данных почти пуста.
Чтобы выяснить, была ли проблема в экземпляре RDS, я протестировал его из терминала. Я вошел в систему и попытался сделать запрос, аналогичный тому, что делает приведенное выше представление:
SELECT * FROM flashcards_deck WHERE user_id=2;
Этот запрос выполняется примерно за 200 миллисекунд. Хотя это все еще много для такого простого запроса в почти пустой базе данных, это намного меньше, чем 5 или 10 секунд, так что, похоже, проблема не в экземпляре RDS.
У кого-нибудь есть идеи, в чем может быть проблема?