MariaDB社区
标题:
mysql不能实时更新
[打印本页]
作者:
huns2009
时间:
2013-1-1 23:20
标题:
mysql不能实时更新
第一运行:
update interface_rpt_msg set dealflag=1 where mid in ('1000056','1000078');
第二运行;
select ids.ismgmsgid,ids.mid,unix_timestamp(msg.submittime) submittime,msg.donetime,msg.srcnumber,msg.committime,msg.status from interface_rpt_msg msg,msgids ids where ids.mid=msg.mid and msg.dealflag=0 limit 1000
结果
('1000056','1000078')的
dealflag还是等于0
数据库使用
innodb存储引擎
数据表结构:
| interface_rpt_msg | CREATE TABLE `interface_rpt_msg` (
`mid` varchar(25) NOT NULL,
`submittime` varchar(20) DEFAULT NULL,
`donetime` varchar(20) DEFAULT NULL,
`srcnumber` varchar(22) DEFAULT NULL,
`destnumber` varchar(22) DEFAULT NULL,
`dealflag` int(1) DEFAULT NULL COMMENT '????????????0???1?????????',
`committime` varchar(20) DEFAULT NULL,
`servicenumber` varchar(22) DEFAULT NULL,
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
`status` varchar(12) DEFAULT NULL COMMENT '????',
PRIMARY KEY (`mid`),
KEY `mid` (`mid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 |
代码使用JAVA自动提交事务
删除也不能立即删除,需要过10S秒后才能删除。
请大师们关注
作者:
huns2009
时间:
2013-1-2 10:53
问题已经解决:
ORACLE没有这个限制,这个可能是MYSQL性能问题,事务一次处理不能小于950毫秒。如果小于这个数查询的结果返回以前的值
作者:
kider
时间:
2013-1-4 17:09
应该跟事务隔离级别有关吧,
MySQL默认是repeatable read
不会脏读、Non-repeatable Reads(不可重复读),但会Phantom Reads(幻读)
Oracle默认是read committed
不会脏读,但会Non-repeatable Reads(不可重复读)和Phantom Reads(幻读)
作者:
huns2009
时间:
2013-1-5 09:14
kider 发表于 2013-1-4 17:09
应该跟事务隔离级别有关吧,
MySQL默认是repeatable read
不会脏读、Non-repeatable Reads(不可重 ...
不好意思,现在彻底解决了。
查询增加了SQL_NO_CACHE,看似有点效果,但真正原因是我这边粗心消息ID取错了。
作者:
kider
时间:
2013-1-5 09:50
解决了就好,努力...
欢迎光临 MariaDB社区 (http://123.56.88.72/)
Powered by Discuz! X3.2