事务型的表和非事务型的表区别在哪?

derekrose 2014-02-15 03:57:10
大概了解事务的概念,事务型的表?不太清楚什么意思
...全文
806 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
derekrose 2014-02-15
  • 打赏
  • 举报
回复
引用 11 楼 yupeigu 的回复:
[quote=引用 10 楼 derekrose 的回复:] [quote=引用 8 楼 yupeigu 的回复:] [quote=引用 5 楼 derekrose 的回复:] [quote=引用 4 楼 yupeigu 的回复:] [quote=引用 2 楼 derekrose 的回复:] [quote=引用 1 楼 yupeigu 的回复:] 事务型的表, 之前没听说过。 但是有事务型系统,也就是OLTP系统,还有非事务型的系统,比如OLAP系统。 事务型,就是有大量的事务,频繁的进行insert、update、delete操作,select相对较少,这些系统有大量的事务,比如:每秒有1000事务要运行,这些操作都需要在一个事务中,一旦运行时报错,那么就要全部回滚,如果不报错,就全部提交。 而非事务型的系统,olap系统,一般也称为数据仓库系统,主要是用于进行联机分析的,基本上都是select 操作,比如:各种报表,对未来利润的预测和分析等等
那我是不是可以理解为 非事务型的表也可以做update操作,但是无法作为事务进行回滚。[/quote] 也不是,非事务型的系统,不是不需要事务,或者没有事务,而其实应该理解为,事务操作很少,因为基本上都是select,所以也就不需要事务。 [/quote] 问一个白痴的问题,是不是在非事务型的系统上进行update的时候 我们就需要自己进行加锁了,而在事务型的系统上进行update的时候 系统会自动加锁 这个帖子分数有点少了 结贴后再开一贴给你分[/quote] 对于udpate操作,数据库自动加锁的,这个和一般的程序设计不一样,比如你用c语言写程序, 设置一个全局变量,线程1要访问,线程2也要访问,那么数据可能就不对了,这时,你要通过mutex,semaphore等,来实现线程间的同步。 而update操作也是如此,只不过数据库自动来实现了这个数据的同步访问,而不需要你写任何的加锁的代码。 当然,数据库比较灵活,可以指定锁的粒度,比如是对某条记录加锁,还是一个数据页加锁,还是表加锁,还是整个数据库都加锁[/quote] 就是说 加锁和数据库是否为事务型无关,只要是数据库系统都会对update自动加锁,只不过是粒度不同而已??[/quote] 对的。 你可以控制锁的粒度。[/quote] http://bbs.csdn.net/topics/390709131 来这个帖子回复一下
LongRui888 2014-02-15
  • 打赏
  • 举报
回复
引用 10 楼 derekrose 的回复:
[quote=引用 8 楼 yupeigu 的回复:] [quote=引用 5 楼 derekrose 的回复:] [quote=引用 4 楼 yupeigu 的回复:] [quote=引用 2 楼 derekrose 的回复:] [quote=引用 1 楼 yupeigu 的回复:] 事务型的表, 之前没听说过。 但是有事务型系统,也就是OLTP系统,还有非事务型的系统,比如OLAP系统。 事务型,就是有大量的事务,频繁的进行insert、update、delete操作,select相对较少,这些系统有大量的事务,比如:每秒有1000事务要运行,这些操作都需要在一个事务中,一旦运行时报错,那么就要全部回滚,如果不报错,就全部提交。 而非事务型的系统,olap系统,一般也称为数据仓库系统,主要是用于进行联机分析的,基本上都是select 操作,比如:各种报表,对未来利润的预测和分析等等
那我是不是可以理解为 非事务型的表也可以做update操作,但是无法作为事务进行回滚。[/quote] 也不是,非事务型的系统,不是不需要事务,或者没有事务,而其实应该理解为,事务操作很少,因为基本上都是select,所以也就不需要事务。 [/quote] 问一个白痴的问题,是不是在非事务型的系统上进行update的时候 我们就需要自己进行加锁了,而在事务型的系统上进行update的时候 系统会自动加锁 这个帖子分数有点少了 结贴后再开一贴给你分[/quote] 对于udpate操作,数据库自动加锁的,这个和一般的程序设计不一样,比如你用c语言写程序, 设置一个全局变量,线程1要访问,线程2也要访问,那么数据可能就不对了,这时,你要通过mutex,semaphore等,来实现线程间的同步。 而update操作也是如此,只不过数据库自动来实现了这个数据的同步访问,而不需要你写任何的加锁的代码。 当然,数据库比较灵活,可以指定锁的粒度,比如是对某条记录加锁,还是一个数据页加锁,还是表加锁,还是整个数据库都加锁[/quote] 就是说 加锁和数据库是否为事务型无关,只要是数据库系统都会对update自动加锁,只不过是粒度不同而已??[/quote] 对的。 你可以控制锁的粒度。
derekrose 2014-02-15
  • 打赏
  • 举报
回复
引用 8 楼 yupeigu 的回复:
[quote=引用 5 楼 derekrose 的回复:] [quote=引用 4 楼 yupeigu 的回复:] [quote=引用 2 楼 derekrose 的回复:] [quote=引用 1 楼 yupeigu 的回复:] 事务型的表, 之前没听说过。 但是有事务型系统,也就是OLTP系统,还有非事务型的系统,比如OLAP系统。 事务型,就是有大量的事务,频繁的进行insert、update、delete操作,select相对较少,这些系统有大量的事务,比如:每秒有1000事务要运行,这些操作都需要在一个事务中,一旦运行时报错,那么就要全部回滚,如果不报错,就全部提交。 而非事务型的系统,olap系统,一般也称为数据仓库系统,主要是用于进行联机分析的,基本上都是select 操作,比如:各种报表,对未来利润的预测和分析等等
那我是不是可以理解为 非事务型的表也可以做update操作,但是无法作为事务进行回滚。[/quote] 也不是,非事务型的系统,不是不需要事务,或者没有事务,而其实应该理解为,事务操作很少,因为基本上都是select,所以也就不需要事务。 [/quote] 问一个白痴的问题,是不是在非事务型的系统上进行update的时候 我们就需要自己进行加锁了,而在事务型的系统上进行update的时候 系统会自动加锁 这个帖子分数有点少了 结贴后再开一贴给你分[/quote] 对于udpate操作,数据库自动加锁的,这个和一般的程序设计不一样,比如你用c语言写程序, 设置一个全局变量,线程1要访问,线程2也要访问,那么数据可能就不对了,这时,你要通过mutex,semaphore等,来实现线程间的同步。 而update操作也是如此,只不过数据库自动来实现了这个数据的同步访问,而不需要你写任何的加锁的代码。 当然,数据库比较灵活,可以指定锁的粒度,比如是对某条记录加锁,还是一个数据页加锁,还是表加锁,还是整个数据库都加锁[/quote] 就是说 加锁和数据库是否为事务型无关,只要是数据库系统都会对update自动加锁,只不过是粒度不同而已??
LongRui888 2014-02-15
  • 打赏
  • 举报
回复
引用 7 楼 derekrose 的回复:
[quote=引用 6 楼 yupeigu 的回复:] 另外,数据库的本质特性,就是事务,所以肯定是支持事务的, 比如,你网一个txt文件写数据,突然系统断电了,那么数据就丢失了,或者处于不一致的情况, 而支持事务的好处是,先写日志,然后再写txt文件,这样就保证了系统重启后,数据不会出现不一致的情况。 当然,现在很多nosql的系统,往往不支持事务,这些我觉得,是功能不完全的数据库把,还需要大量的改进,一般只适合与互联网领域,对数据准确要求不高的应用
是不是不支持事务的数据库可能性能上要好很多呢[/quote] 这个确实是的,不支持数据库,做的事情少了,相当于本来要运行1w行代码的,现在没有事务,代码少了,只需要100行代码来实现,运行速度肯定快
LongRui888 2014-02-15
  • 打赏
  • 举报
回复
引用 5 楼 derekrose 的回复:
[quote=引用 4 楼 yupeigu 的回复:] [quote=引用 2 楼 derekrose 的回复:] [quote=引用 1 楼 yupeigu 的回复:] 事务型的表, 之前没听说过。 但是有事务型系统,也就是OLTP系统,还有非事务型的系统,比如OLAP系统。 事务型,就是有大量的事务,频繁的进行insert、update、delete操作,select相对较少,这些系统有大量的事务,比如:每秒有1000事务要运行,这些操作都需要在一个事务中,一旦运行时报错,那么就要全部回滚,如果不报错,就全部提交。 而非事务型的系统,olap系统,一般也称为数据仓库系统,主要是用于进行联机分析的,基本上都是select 操作,比如:各种报表,对未来利润的预测和分析等等
那我是不是可以理解为 非事务型的表也可以做update操作,但是无法作为事务进行回滚。[/quote] 也不是,非事务型的系统,不是不需要事务,或者没有事务,而其实应该理解为,事务操作很少,因为基本上都是select,所以也就不需要事务。 [/quote] 问一个白痴的问题,是不是在非事务型的系统上进行update的时候 我们就需要自己进行加锁了,而在事务型的系统上进行update的时候 系统会自动加锁 这个帖子分数有点少了 结贴后再开一贴给你分[/quote] 对于udpate操作,数据库自动加锁的,这个和一般的程序设计不一样,比如你用c语言写程序, 设置一个全局变量,线程1要访问,线程2也要访问,那么数据可能就不对了,这时,你要通过mutex,semaphore等,来实现线程间的同步。 而update操作也是如此,只不过数据库自动来实现了这个数据的同步访问,而不需要你写任何的加锁的代码。 当然,数据库比较灵活,可以指定锁的粒度,比如是对某条记录加锁,还是一个数据页加锁,还是表加锁,还是整个数据库都加锁
derekrose 2014-02-15
  • 打赏
  • 举报
回复
引用 6 楼 yupeigu 的回复:
另外,数据库的本质特性,就是事务,所以肯定是支持事务的, 比如,你网一个txt文件写数据,突然系统断电了,那么数据就丢失了,或者处于不一致的情况, 而支持事务的好处是,先写日志,然后再写txt文件,这样就保证了系统重启后,数据不会出现不一致的情况。 当然,现在很多nosql的系统,往往不支持事务,这些我觉得,是功能不完全的数据库把,还需要大量的改进,一般只适合与互联网领域,对数据准确要求不高的应用
是不是不支持事务的数据库可能性能上要好很多呢
LongRui888 2014-02-15
  • 打赏
  • 举报
回复
另外,数据库的本质特性,就是事务,所以肯定是支持事务的, 比如,你网一个txt文件写数据,突然系统断电了,那么数据就丢失了,或者处于不一致的情况, 而支持事务的好处是,先写日志,然后再写txt文件,这样就保证了系统重启后,数据不会出现不一致的情况。 当然,现在很多nosql的系统,往往不支持事务,这些我觉得,是功能不完全的数据库把,还需要大量的改进,一般只适合与互联网领域,对数据准确要求不高的应用
derekrose 2014-02-15
  • 打赏
  • 举报
回复
引用 4 楼 yupeigu 的回复:
[quote=引用 2 楼 derekrose 的回复:] [quote=引用 1 楼 yupeigu 的回复:] 事务型的表, 之前没听说过。 但是有事务型系统,也就是OLTP系统,还有非事务型的系统,比如OLAP系统。 事务型,就是有大量的事务,频繁的进行insert、update、delete操作,select相对较少,这些系统有大量的事务,比如:每秒有1000事务要运行,这些操作都需要在一个事务中,一旦运行时报错,那么就要全部回滚,如果不报错,就全部提交。 而非事务型的系统,olap系统,一般也称为数据仓库系统,主要是用于进行联机分析的,基本上都是select 操作,比如:各种报表,对未来利润的预测和分析等等
那我是不是可以理解为 非事务型的表也可以做update操作,但是无法作为事务进行回滚。[/quote] 也不是,非事务型的系统,不是不需要事务,或者没有事务,而其实应该理解为,事务操作很少,因为基本上都是select,所以也就不需要事务。 [/quote] 问一个白痴的问题,是不是在非事务型的系统上进行update的时候 我们就需要自己进行加锁了,而在事务型的系统上进行update的时候 系统会自动加锁 这个帖子分数有点少了 结贴后再开一贴给你分
LongRui888 2014-02-15
  • 打赏
  • 举报
回复
引用 2 楼 derekrose 的回复:
[quote=引用 1 楼 yupeigu 的回复:] 事务型的表, 之前没听说过。 但是有事务型系统,也就是OLTP系统,还有非事务型的系统,比如OLAP系统。 事务型,就是有大量的事务,频繁的进行insert、update、delete操作,select相对较少,这些系统有大量的事务,比如:每秒有1000事务要运行,这些操作都需要在一个事务中,一旦运行时报错,那么就要全部回滚,如果不报错,就全部提交。 而非事务型的系统,olap系统,一般也称为数据仓库系统,主要是用于进行联机分析的,基本上都是select 操作,比如:各种报表,对未来利润的预测和分析等等
那我是不是可以理解为 非事务型的表也可以做update操作,但是无法作为事务进行回滚。[/quote] 也不是,非事务型的系统,不是不需要事务,或者没有事务,而其实应该理解为,事务操作很少,因为基本上都是select,所以也就不需要事务。
derekrose 2014-02-15
  • 打赏
  • 举报
回复
引用 1 楼 yupeigu 的回复:
事务型的表, 之前没听说过。 但是有事务型系统,也就是OLTP系统,还有非事务型的系统,比如OLAP系统。 事务型,就是有大量的事务,频繁的进行insert、update、delete操作,select相对较少,这些系统有大量的事务,比如:每秒有1000事务要运行,这些操作都需要在一个事务中,一旦运行时报错,那么就要全部回滚,如果不报错,就全部提交。 而非事务型的系统,olap系统,一般也称为数据仓库系统,主要是用于进行联机分析的,基本上都是select 操作,比如:各种报表,对未来利润的预测和分析等等
说的真的很好,很清晰
derekrose 2014-02-15
  • 打赏
  • 举报
回复
引用 1 楼 yupeigu 的回复:
事务型的表, 之前没听说过。 但是有事务型系统,也就是OLTP系统,还有非事务型的系统,比如OLAP系统。 事务型,就是有大量的事务,频繁的进行insert、update、delete操作,select相对较少,这些系统有大量的事务,比如:每秒有1000事务要运行,这些操作都需要在一个事务中,一旦运行时报错,那么就要全部回滚,如果不报错,就全部提交。 而非事务型的系统,olap系统,一般也称为数据仓库系统,主要是用于进行联机分析的,基本上都是select 操作,比如:各种报表,对未来利润的预测和分析等等
那我是不是可以理解为 非事务型的表也可以做update操作,但是无法作为事务进行回滚。
LongRui888 2014-02-15
  • 打赏
  • 举报
回复
事务型的表, 之前没听说过。 但是有事务型系统,也就是OLTP系统,还有非事务型的系统,比如OLAP系统。 事务型,就是有大量的事务,频繁的进行insert、update、delete操作,select相对较少,这些系统有大量的事务,比如:每秒有1000事务要运行,这些操作都需要在一个事务中,一旦运行时报错,那么就要全部回滚,如果不报错,就全部提交。 而非事务型的系统,olap系统,一般也称为数据仓库系统,主要是用于进行联机分析的,基本上都是select 操作,比如:各种报表,对未来利润的预测和分析等等

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧