社区
MySQL
帖子详情
mysql 更新一条记录不是立刻存进去吗?
netxuning
2011-12-01 09:10:26
我的程序需要频频读取且更新某个字段,奇怪的是某此update set `col`=`col`+1之后,如果紧跟着一秒之内再查询该记录,发现结果并没有加1.
不得不怀疑,mysql是不是不会立刻执行update?或者执行update后并不立即写入硬盘?
...全文
140
12
打赏
收藏
mysql 更新一条记录不是立刻存进去吗?
我的程序需要频频读取且更新某个字段,奇怪的是某此update set `col`=`col`+1之后,如果紧跟着一秒之内再查询该记录,发现结果并没有加1. 不得不怀疑,mysql是不是不会立刻执行update?或者执行update后并不立即写入硬盘?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
沉沦
2011-12-02
打赏
举报
回复
隔离级别的问题吧。。
a4742715
2011-12-01
打赏
举报
回复
局域网局域网局域网局域网
ACMAIN_CHM
2011-12-01
打赏
举报
回复
你的问题非常奇怪。 你的查询,MYSQL应该会直接到缓冲区中去取。 如果在缓冲区中有所需数据,则MYSQL不会进行磁盘IO操作,而是直接根据缓冲区内的数据进行操作。 你的问题好像是事务隔离相关的问题。 你的UPDATE操作是否提交? MYSQL事务隔离级别设置是什么?
netxuning
2011-12-01
打赏
举报
回复
[Quote=引用 3 楼 acmain_chm 的回复:]
肯定不会立即写入磁盘。 这个受操作系统的IO机制和MYSQL本身的机制决定。
一般 数据库系统层,只有当缓冲区的脏数据到检查点或者没有空闲缓冲区的时候才会向操作系统申请将缓冲中的脏数据写加磁盘扇区并将缓冲区标记为可用。
而操作系统同样使用类似机制以提高IO效率。
[/Quote]
那就意味着,update和select操作即便是串行的,也会导致我上边说的问题吧?
PS:好久不见版主了,顺便问好!我这个兼职二把刀管数据库的依然没有长进!:)
ACMAIN_CHM
2011-12-01
打赏
举报
回复
肯定不会立即写入磁盘。 这个受操作系统的IO机制和MYSQL本身的机制决定。
一般 数据库系统层,只有当缓冲区的脏数据到检查点或者没有空闲缓冲区的时候才会向操作系统申请将缓冲中的脏数据写加磁盘扇区并将缓冲区标记为可用。
而操作系统同样使用类似机制以提高IO效率。
jiaweiqq123
2011-12-01
打赏
举报
回复
python:执行完更新之后,需要commit(),再从数据库中select应该就没问题了
yangxiao_jiang
2011-12-01
打赏
举报
回复
这个应该是程序缓存的问题。
netxuning
2011-12-01
打赏
举报
回复
嗯,可能我太武断了,继续查查
rucypli
2011-12-01
打赏
举报
回复
你可以用客户端试试 如果没问题就是你程序的问题了
ACMAIN_CHM
2011-12-01
打赏
举报
回复
感觉是你程序方面的原因, 代码是什么,怎样进行读取更新操作的?
netxuning
2011-12-01
打赏
举报
回复
[Quote=引用 2 楼 jiaweiqq123 的回复:]
python:执行完更新之后,需要commit(),再从数据库中select应该就没问题了
[/Quote]
谢谢,知道php也要类似的操作吗?
netxuning
2011-12-01
打赏
举报
回复
[Quote=引用 5 楼 acmain_chm 的回复:]
你的问题非常奇怪。 你的查询,MYSQL应该会直接到缓冲区中去取。 如果在缓冲区中有所需数据,则MYSQL不会进行磁盘IO操作,而是直接根据缓冲区内的数据进行操作。 你的问题好像是事务隔离相关的问题。 你的UPDATE操作是否提交? MYSQL事务隔离级别设置是什么?
[/Quote]
表引擎是myisam,没有任何事务之类
MySQL
仅
存
1000条数据吗?原因很简单?
1、原因 因为navicat分页,导致默认一页只能显示1000行,62616964757a686964616fe4b893e5b19e31333433616233超出1000行就在下一页显示了,并不是
存
不
进去
数据,只是分页显示了,其实第一次已经添加成功了,点击右下方下一页就能看到添加的其他数据了。 2、
MySQL
数据库特性: 1.
mySQL
使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。 2.支持 AIX、FreeBSD、HP-UX、Linux、Mac OS、NovellNet
mysql
只能
存
1000条数据_为什么我
mysql
的表添加了1000条
记录
之后就
存
不
进去
数据了,客户端也没报错...
展开全部因为navicat分页,导致默认一页只能显示1000行,62616964757a686964616fe4b893e5b19e31333433616233超出1000行就在下一页显示了,并不是
存
不
进去
数据,只是分页显示了,其实第一次已经添加成功了,点击右下方下一页就能看到添加的其他数据了。为了防止之后出现类似问题,可以按如下图所示将限制行的对勾去掉即可。扩展资料
MySQL
数据库特性:1. m...
mysql
新增
一条
没有主键的数据怎么_
mysql
insert
一条
记录
后怎样返回创建
记录
的主键id,last_insert_id(),selectkey...
mysql
插入数据后返回自增ID的方法
mysql
和oracle插入的时候有一个很大的区别是,oracle支持序列做id,
mysql
本身有一个列可以做自增长字段,
mysql
在插入
一条
数据后,如何能获得到这个自增id的值呢?方法一:是使用last_insert_id
mysql
> SELECT LAST_INSERT_ID();产生的ID 每次连接后保
存
在服务器中。这意味着函数向一个给定客户端返回...
mysql
中每页最少两条数据_
MySQL
源码:为什么INNODB数据页面中最少
存
储2条
记录
?...
写在前面:我一直认为数据库中已经规定,一个页面中至少要
存
储2条
记录
,但是前几天碰到一个问题:为什么INNODB数据页面中最少
存
储2条
记录
?一下子把我问住了,知道是这样,但从没有问过自己这是为什么,所以我一直想这个问题,现在刨根问底,终于知道为什么了,下面就把这个问题的原因说一下吧。在INNODB中,底层数据的
存
储是通过B+树实现的,一个页面的大小一般设置为16K,不同页面之间通过父子、兄弟挂链,形...
mysql
修改某个
记录
某字段的值
MySQL
:如何
更新
某个字段的值为原来的值加1 SQLSERVERNavicat我测试了一下,可以给某个字段运行一次自动加一,自动加一的字段是整形,int等
mysql
中在同一张表如何将
一条
记录
的某一字段的值赋值给另
一条
记录
的相对应的字段? update语句可以搞定,但是需要join配合, 例如,有个表如下,需...
MySQL
56,679
社区成员
56,709
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章