+ -
当前位置:首页 → 问答吧 → mysql缓存读取

mysql缓存读取

时间:2011-11-02

来源:互联网

各位大虾,小弟遇到一个问题,就是怎么直接读取mysql里的缓存内容,我想读取mysql数据库的数据,但因为有缓存机制,所以我在前端修改后的数据读不出来,读的数据都是没修改之前的,比如用户表user,有字段,user_id user_name dept_id,现在我在前端把其中一个用户的部门改变,现在使用sql,select * from user;显示的还是没改变之前的部门ID。
网上看到说只要执行两条同样的sql语句,就会显示缓存的内容,但我都执行了N遍了,还是不显示修改后的数据,请教各位,怎么做才能直接从缓存读取数据?

作者: vincen29   发布时间: 2011-11-02

你那不是缓存,是事务的隔离。

参考一下手册中关于事务隔离的设置。
引用
13.4.6. SET TRANSACTION语法
SET [GLOBAL | SESSION] TRANSACTION ISOLATION LEVEL
{ READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SERIALIZABLE }
本语句用于设置事务隔离等级,用于下一个事务,或者用于当前会话。

在默认情况下,SET TRANSACTION会为下一个事务(还未开始)设置隔离等级。如果您使用GLOBAL关键词,则语句会设置全局性的默认事务等级,用于从该点以后创建的所有新连接。原有的连接不受影响。要进行此操作,您需要SUPER权限。使用SESSION关键测可以设置默认事务等级,用于对当前连接执行的所有将来事务。

要了解对每个InnoDB事务隔离等级的描述,请参见15.2.10.3节,“InnoDB和TRANSACTION ISOLATION LEVEL”。InnoDB支持MySQL 5.1中的各个等级。默认的等级是REPEATABLE READ。

作者: ACMAIN_CHM   发布时间: 2011-11-02

你先在客户端执行试试

作者: rucypli   发布时间: 2011-11-02

相关阅读 更多