V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
fanzeyi
V2EX  ›  Python

SQLAlchemy 的缓存问题.

  •  
  •   fanzeyi ·
    fanzeyi · 2012-04-18 21:13:47 +08:00 · 5468 次点击
    这是一个创建于 4637 天前的主题,其中的信息可能已经有所发展或是发生改变。
    正在写一个网站,

    用户提交数据之后网站通过 SQLAlchemy 插入数据进 MySQL 中.. 同时加入一个 work 进队列

    然后队列中的 worker 完成任务后直接通过 MySQLdb 把结果更新到数据库里

    但是此时我可以在 MySQL 里看到数据已经处理结束了,但是网站这里看到的还是 worker 处理前的数据,需要等很久才能恢复。

    查了关于 sqlalchemy 的 cache 问题,却没有得到相关答案.. 有人知道这种情况是怎么造成的么?
    8 条回复    2015-08-19 20:16:05 +08:00
    binux
        1
    binux  
       2012-04-18 21:21:49 +08:00
    fanzeyi
        2
    fanzeyi  
    OP
       2012-04-18 21:26:44 +08:00
    @binux 这个不行……

    我在怀疑是 MySQL 的 cache 问题……
    binux
        3
    binux  
       2012-04-18 21:29:35 +08:00
    @fanzeyi 另外commit了吗?
    fanzeyi
        4
    fanzeyi  
    OP
       2012-04-18 21:31:21 +08:00
    @binux 另外 commit ?
    napoleonu
        5
    napoleonu  
       2012-04-18 21:40:37 +08:00
    MySQL 的 Query Cache 很傻,只要表有任何写操作那么关于这个表的所有 Query Cache 全部失效,而开启 Query Cache 后没条查询都要先判断有没有 Cache 所以对于经常更新的表使用 Query Cache 有可能性能不升反降。

    前台页面写数据,后台管理可以看到数据,说明成功提交了(如果是 innodb 并且autocommit=0,否则更说明数据成功写入)。
    napoleonu
        6
    napoleonu  
       2012-04-18 21:51:14 +08:00
    前台页面写数据,后台管理可以看到数据,说明成功提交了(如果是 innodb 并且autocommit=0,否则更说明数据成功写入)。——未提交读以外隔离级别下。

    这句更正,不同隔离级别有区别。
    fanzeyi
        7
    fanzeyi  
    OP
       2012-04-18 22:10:34 +08:00   ❤️ 1
    @binux @napoleonu 嗯 找到问题所在了...

    因为我用了 SQLAlchemy 的 scoped_session 但是以为不需要 close 了…… 于是就一直使用的同一个 session .. 所以查询的时候没查到更改后的数据。

    囧囧
    kk71
        8
    kk71  
       2015-08-19 20:16:05 +08:00
    @fanzeyi 今天也遇到这个问题了 焦头烂额啊
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1024 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:30 · PVG 03:30 · LAX 11:30 · JFK 14:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.