【发布时间】:2015-02-05 19:08:15
【问题描述】:
我有一个大约需要 20 秒的 sql 选择查询,我想使用 mysql 缓存来缓存结果,以便快速获取结果。
在 my.cnf 中进行一些配置后,我在 Linux mysql 客户端控制台中运行选择查询时成功实现了这一点。
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 客户端控制台中?
-
我在 my.cnf 中添加以下行: query_cache_size = 268435456 query_cache_type = 1 query_cache_limit = 1048576