数据库
hellochenlu
这个作者很懒,什么都没留下…
展开
-
数据库事务原子性、一致性是怎样实现的?
转自知乎,原文链接:https://www.zhihu.com/question/30272728/answer/71927112讨论数据库的事务原子性,先看最极端的情况,即全局一把锁,所有事务排队执行,这种情况下没有原子性问题,因为所有事务看到的都是在自己之前已经提交的数据。为了提高性能,充分利用多核,我们需要让多个事务能够并行的执行,但是还要保证这些事务“看起来”是串行执行转载 2016-06-14 15:05:19 · 2846 阅读 · 0 评论 -
多版本并发控制MVCC(Multi-Version Concurrency Control )
参考文章:http://www.pgcon.org/2008/schedule/attachments/54_PGCon2008-HOT.ppthttp://www.cnblogs.com/gaojian/p/3295951.html图1:事务T1改变数据V1,将其改为数据V2,在堆中,数据如下图图2:事务T3改变了V2,将其改为V3,在堆中,数据如下图:目前事转载 2016-11-19 11:41:24 · 608 阅读 · 0 评论 -
MySQL事务隔离级别详解
参考文章:http://xm-king.iteye.com/blog/770721SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的。低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销。Read Uncommitted(读取未提交内容) 在该隔离级别,所有事务都可以看到其他未提交事务的执行结果。本隔离原创 2016-11-29 16:54:19 · 228 阅读 · 0 评论 -
database中的执行和提交
当执行commit()的时候什么也别想,此时已经将数据库更新完毕,打个比方吧,假如你的事务是要对信息更新一条信息和删除一条信息,删除无异常,更新无异常,而此时执行了commit则数据库也已经执行过更新和删除了,因为在之前已经在数据库执行过你那两个操作了,只是执行结果存在sql临时文件里了,试想一下,不然vs编辑器怎么会知道你那两个操作会报异常而进行回滚呢,这个时候已经在数据库执行了,但是却没对你的转载 2016-11-10 22:15:34 · 1102 阅读 · 0 评论 -
数据库实现参考资料
Go语言版本:https://github.com/qw4990/NYADB2https://www.zhihu.com/question/35382593/answer/102269843?from=profile_answer_card原创 2016-11-08 15:25:59 · 989 阅读 · 0 评论 -
数据库事务
事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行。所以,应该把它们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。 针对上面的描述可以看出,事务的提出主要是为转载 2016-08-13 19:31:01 · 230 阅读 · 0 评论 -
SQL Server:触发器详解
原文链接:http://www.cnblogs.com/rainman/p/3675834.html1. 概述2. 触发器的分类3. Inserted和Deleted表4. 触发器的执行过程5. 创建触发器6. 修改触发器:7. 删除触发器:8. 查看数据库中已有触发器:9. “Instead of”相关示例:10. “After”触发器11.转载 2016-08-13 19:14:45 · 418 阅读 · 0 评论 -
Oracle带输入输出参数的存储过程
原文链接:http://blog.itpub.net/29485627/viewspace-1248721/(一)使用输入参数需求:在emp_copy中添加一条记录,empno为已有empno的最大值+1,ename不能为空且长度必须大于0,deptno为60。创建存储过程:create or replace procedure insert_emp(emp_name in var转载 2016-08-13 17:28:17 · 11728 阅读 · 0 评论 -
存储过程和函数的区别
原文链接:http://www.cnblogs.com/SharkBin/archive/2012/08/08/2627912.html存储过程和函数目的是为了 可重复地 执行操作数据库的sql语句的集合。区别是写法和调用上。写法上:存储过程的参数列表可以有输入参数、输出参数、可输入输出的参数; 函数的参数列表只有输入参数,并且有retur转载 2016-08-13 16:35:22 · 1890 阅读 · 0 评论 -
什么叫做SQL注入式攻击,如何防范?
所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串中,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。防范SQL注入式攻击闯入并不是一件特别困难的事情,只要在利用表单输入的内容构造SQL命令之前,把所有输入内容过滤一番就可以了。过滤输入内容转载 2016-08-13 17:04:54 · 3909 阅读 · 0 评论 -
数据库(第一范式,第二范式,第三范式)
范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪70年代提出关系数据库模型后总结出来的,范式是关系数据库理论的基础,也是我们在设计数据库结构过程中所要遵循的规则和指导方法。目前有迹可寻的共有8种范式,依次是:1NF,2NF,3NF,BCNF,4NF,5NF,DKNF,6NF。通常所用到的只是前三个范式,即:第一范式(1NF),第二范式(2NF)转载 2016-08-13 16:27:28 · 272 阅读 · 0 评论 -
数据库日志——Undo | Redo
原文链接:http://www.cnblogs.com/Bozh/archive/2013/03/18/2966494.html00 – Undo LogUndo Log 是为了实现事务的原子性,在MySQL数据库InnoDB存储引擎中,还用Undo Log来实现多版本并发控制(简称:MVCC)。- 事务的原子性(Atomicity) 事务中的所有操作,要么全部完成,要么转载 2016-06-22 17:13:43 · 279 阅读 · 0 评论 -
乐观锁和悲观锁的区别
原文链接:http://blog.csdn.net/hongchangfirst/article/details/26004335悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,转载 2016-11-21 15:37:50 · 284 阅读 · 0 评论