У меня есть запрос на выбор sql, который занимает около 20 секунд, я хочу использовать кеш mysql для кэширования результата, чтобы я мог быстро получить результаты.web.py mysql cache cache
После выполнения некоторой конфигурации в my.cnf мне удалось добиться этого, выполнив запрос выбора в клиентской консоли mysql Linux.
добавленные строки в my.cnf является:
query_cache_size = 268435456
query_cache_type = 1
query_cache_limit = 1048576
Но когда я выполнить запрос из web.py кода. Функция кеша кажется неработоспособной, то есть время выполнения не короче, чем раньше.
Ниже приведен код web.py:
import web
db = web.database(dbn='mysql', db='RLCM', user='guest', pw='guest')
sql = "SELECT xxx from xx"
results = db.query(sql);
мне нужно добавить какие-либо параметры для того, чтобы кэш делать?
Я решил эту проблему, исключив SET autocommit = 1 перед запуском запроса. Теперь код:
import web
db = web.database(dbn='mysql', db='RLCM', user='guest', pw='guest')
sql = "SET autocommit=1;"
db.query(sql);
sql = "SELECT xxx from xx"
results = db.query(sql);
Что вы сделали, чтобы сделать результат кэшированным в клиентской консоли mysql? – xiaowl
Я добавляю следующие строки в my.cnf: query_cache_size = 268435456 query_cache_type = 1 query_cache_limit = 1048576 – lzy9059