Почему вы беспокоитесь о кешировании?Пусть Django или MySQL делают то, что они делают.
Если вы склонны к этому.Вы можете отключить кеширование для Django.Это довольно просто сделать в settings.py для вашего проекта.
Для Mysql вам нужно запустить несколько запросов, чтобы отключить кеш запросов -
Попробуйте использовать SQL_NO_CACHE
вариант в вашем запросе.Точно так же
SELECT SQL_NO_CACHE * FROM TABLE
Это остановит MySQL кеширование результатов, однако следует помнить, что другие ОС и дисковые кеши могут также влиять на производительность.С ними труднее обойтись.
Одна из проблем этого метода заключается в том, что, похоже, он только предотвращает кэширование результата вашего запроса.Однако, если вы запрашиваете базу данных, которая активно используется с запросом, который вы хотите протестировать, другие клиенты могут кэшировать ваш запрос, влияя на ваши результаты.Я продолжаю исследовать пути решения этой проблемы, отредактирую этот пост, если я его выясню.
ИЛИ
Вы также можете сделать RESET QUERY CACHE
ИЛИ
FLUSH QUERY CACHE
Хотя следует отметить, что я бы посоветовал разрешить Mysql обрабатывать предложение WHERE
, поскольку в нем есть слой оптимизации запросов, который будет очень эффективен, если у вас естьправильные поля проиндексированы.Получение всех результатов и выполнение действия WHERE
может замедлить работу в зависимости от размера набора запросов.Просто кое что для раздумий.Я думаю, правильный тест должен показать вам путь.