免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 12353 | 回复: 5

并发效率相对mysql低正常么? [复制链接]

论坛徽章:
0
发表于 2013-10-26 09:22 |显示全部楼层
同一测试机器, 一个小表几条数据, 10进程并发update tab set xx= xx +1, 总共10x1000x100次(每个进程update1000次然后结束自身, 再创建新进程)


mysql MyISAM 好像是十几秒钟
pg, (试过pgbouncer或者直连) 几分钟, 偶尔还提示锁冲突

这是正常的情况么? 还是因为mysql是用的MyISAM的缘故? 我没试过innodb

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
发表于 2013-10-30 14:51 |显示全部楼层
你得看MyISAM 的 update结果正不正确。

论坛徽章:
2
亥猪
日期:2014-03-19 16:36:35午马
日期:2014-11-23 23:48:46
发表于 2013-10-30 14:51 |显示全部楼层
你得看MyISAM 的 update结果正不正确。

论坛徽章:
1
综合交流区版块每日发帖之星
日期:2015-10-14 06:20:00
发表于 2013-11-13 11:12 |显示全部楼层
本帖最后由 fly3ds 于 2013-11-13 11:12 编辑

有非用PostgreSQL不可得理由嘛?

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-11-30 10:14 |显示全部楼层
重复执行UPDATE 更新,而没有提交,会导致POSTGRESQL的版本没有清理,而逐步变得非常慢,
比如执行10-100万次 类似下列更新SQL,
UPDATE  TABLENAME
SET   TABLENAME.FIELDNAME =  TABLENAME.FIELDNAME + 1
WHERE KEY_FIELDNAME = 'ZZZZZ'

跟MYSQL 或者ORACLE比较速度,你会发现POSTGRESQL非常慢,原因就是POSTGRESQL的版本控制跟他们不一样,当没有提交清理时,POSTGRESQL需要化时间去查找,重复次数越多,查找的时间越长,

这个问题要这么看:

1)如果每笔更新后,采用事务,立即提交,ORACLE,MYSQL也同样执行这样的事务语句,你再比较。
发现速度几乎没有差异

2)如果不采用UPDATE,而采用INSERT插入语句,比较,发现速度也没有什么差异

3)不知道,楼主在什么情况下,需要重复用大量的循环来更新一个表的某条记录,某个字段而不提交,


论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
发表于 2013-11-30 10:51 |显示全部楼层
或者同样大的表,比如100万条,对每条记录进行更新,而不是针对仅仅对同一条记录重复更新,你会发现,
POSTGRESQL,ORACLE,MY SQL等也没有差异,

也就是说,除非极端特殊情况,POSTGRESQL跟MYSQL ORACLE的插入、更新是一样的,几乎没有差异,

那种反复对同一记录,大量重复更新,而不提交,实际是不存在的,干嘛要那么做呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP