Почему база данных 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.

У кого-нибудь есть идеи, в чем может быть проблема?

Вернуться на верх