免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2111 | 回复: 7
打印 上一主题 下一主题

越来越看不懂的affected rows [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-04 14:56 |只看该作者 |倒序浏览
mysql> select count(*) from EAD0_PKG_USAGE_ACC;
+----------+
| count(*) |
+----------+
|    20000 |
+----------+
1 row in set (0.00 sec)

mysql> truncate table EAD0_PKG_USAGE_ACC;      
Query OK, 20290 rows affected (0.00 sec)

这个表用select count(*)看是20000行,truncate的话却有20290行受影响

mysql> select count(*) from EAD0_RG_USAGE_ACC;  
+----------+
| count(*) |
+----------+
|    20000 |
+----------+
1 row in set (0.43 sec)

mysql> truncate table EAD0_RG_USAGE_ACC;  
Query OK, 26136 rows affected (0.00 sec)

这个表有20000行,truncate时却有26136行受影响,

这两个表都没有别其他表外键关联到,只是表本身有外键关联到其他表,但是删除应该不会影响到其他表的rows啊。

论坛徽章:
0
2 [报告]
发表于 2008-07-04 14:59 |只看该作者
还有更搞怪的

mysql> select count(*) from EAD0_PKG_USAGE_ACC;
+----------+
| count(*) |
+----------+
|    20000 |
+----------+
1 row in set (0.01 sec)

mysql> truncate table EAD0_PKG_USAGE_ACC;
Query OK, 19059 rows affected (0.00 sec)

mysql> select count(*) from EAD0_PKG_USAGE_ACC;
+----------+
| count(*) |
+----------+
|        0 |
+----------+
1 row in set (0.00 sec)

这次truncate只影响了19059行,但是表已经空了。

论坛徽章:
0
3 [报告]
发表于 2008-07-04 19:50 |只看该作者
你用的是innodb引擎的吧?  mvcc

论坛徽章:
0
4 [报告]
发表于 2008-07-04 20:14 |只看该作者
正常

对于innodb

TRUNCATE 或者 SHOW TABLE STATUS

显示的是大致的记录数,并不一定准确

==========================

不过严格的说来,也算是bug

论坛徽章:
0
5 [报告]
发表于 2008-07-04 20:18 |只看该作者
应该不算吧  innodb用 mvcc保证并行  如果多个会话,他们的行数都不一样的   所以在默认isolation,只能看到已经commit的行数

论坛徽章:
0
6 [报告]
发表于 2008-07-04 20:24 |只看该作者
原帖由 7islands 于 2008-7-4 20:18 发表
应该不算吧  innodb用 mvcc保证并行  如果多个会话,他们的行数都不一样的   所以在默认isolation,只能看到已经commit的行数


参考: http://bugs.mysql.com/bug.php?id=29507

论坛徽章:
0
7 [报告]
发表于 2008-07-04 20:46 |只看该作者

回复 #6 showsa 的帖子

tks     又学了一点!

论坛徽章:
0
8 [报告]
发表于 2008-07-05 00:20 |只看该作者
TRUNCATE是快速删表,然后重建。所以显示的数据是一个大概,不是精确的。
DELETE就是一个精确的值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP