34,874
社区成员
发帖
与我相关
我的任务
分享
这个帖子分数有点少了 结贴后再开一贴给你分[/quote]
对于udpate操作,数据库自动加锁的,这个和一般的程序设计不一样,比如你用c语言写程序,
设置一个全局变量,线程1要访问,线程2也要访问,那么数据可能就不对了,这时,你要通过mutex,semaphore等,来实现线程间的同步。
而update操作也是如此,只不过数据库自动来实现了这个数据的同步访问,而不需要你写任何的加锁的代码。
当然,数据库比较灵活,可以指定锁的粒度,比如是对某条记录加锁,还是一个数据页加锁,还是表加锁,还是整个数据库都加锁[/quote]
就是说 加锁和数据库是否为事务型无关,只要是数据库系统都会对update自动加锁,只不过是粒度不同而已??[/quote]
对的。
你可以控制锁的粒度。[/quote]
http://bbs.csdn.net/topics/390709131 来这个帖子回复一下
这个帖子分数有点少了 结贴后再开一贴给你分[/quote]
对于udpate操作,数据库自动加锁的,这个和一般的程序设计不一样,比如你用c语言写程序,
设置一个全局变量,线程1要访问,线程2也要访问,那么数据可能就不对了,这时,你要通过mutex,semaphore等,来实现线程间的同步。
而update操作也是如此,只不过数据库自动来实现了这个数据的同步访问,而不需要你写任何的加锁的代码。
当然,数据库比较灵活,可以指定锁的粒度,比如是对某条记录加锁,还是一个数据页加锁,还是表加锁,还是整个数据库都加锁[/quote]
就是说 加锁和数据库是否为事务型无关,只要是数据库系统都会对update自动加锁,只不过是粒度不同而已??[/quote]
对的。
你可以控制锁的粒度。
这个帖子分数有点少了 结贴后再开一贴给你分[/quote]
对于udpate操作,数据库自动加锁的,这个和一般的程序设计不一样,比如你用c语言写程序,
设置一个全局变量,线程1要访问,线程2也要访问,那么数据可能就不对了,这时,你要通过mutex,semaphore等,来实现线程间的同步。
而update操作也是如此,只不过数据库自动来实现了这个数据的同步访问,而不需要你写任何的加锁的代码。
当然,数据库比较灵活,可以指定锁的粒度,比如是对某条记录加锁,还是一个数据页加锁,还是表加锁,还是整个数据库都加锁[/quote]
就是说 加锁和数据库是否为事务型无关,只要是数据库系统都会对update自动加锁,只不过是粒度不同而已??
是不是不支持事务的数据库可能性能上要好很多呢[/quote]
这个确实是的,不支持数据库,做的事情少了,相当于本来要运行1w行代码的,现在没有事务,代码少了,只需要100行代码来实现,运行速度肯定快
这个帖子分数有点少了 结贴后再开一贴给你分[/quote]
对于udpate操作,数据库自动加锁的,这个和一般的程序设计不一样,比如你用c语言写程序,
设置一个全局变量,线程1要访问,线程2也要访问,那么数据可能就不对了,这时,你要通过mutex,semaphore等,来实现线程间的同步。
而update操作也是如此,只不过数据库自动来实现了这个数据的同步访问,而不需要你写任何的加锁的代码。
当然,数据库比较灵活,可以指定锁的粒度,比如是对某条记录加锁,还是一个数据页加锁,还是表加锁,还是整个数据库都加锁
是不是不支持事务的数据库可能性能上要好很多呢
这个帖子分数有点少了 结贴后再开一贴给你分
之前没听说过。
但是有事务型系统,也就是OLTP系统,还有非事务型的系统,比如OLAP系统。
事务型,就是有大量的事务,频繁的进行insert、update、delete操作,select相对较少,这些系统有大量的事务,比如:每秒有1000事务要运行,这些操作都需要在一个事务中,一旦运行时报错,那么就要全部回滚,如果不报错,就全部提交。
而非事务型的系统,olap系统,一般也称为数据仓库系统,主要是用于进行联机分析的,基本上都是select 操作,比如:各种报表,对未来利润的预测和分析等等