
数据库
文章平均质量分 58
wxy941011
这个作者很懒,什么都没留下…
展开
-
索引
一、什么是索引?索引用来快速地寻找那些具有特定值的记录,所有MySQL索引都以B-树的形式保存。如果没有索引,执行查询时MySQL必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录。表里面的记录数量越多,这个操作的代价就越高。如果作为搜索条件的列上已经创建了索引,MySQL无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有1000个记录,通过索引查找记录至少要比顺序扫描记录快1...原创 2018-03-17 10:23:35 · 278 阅读 · 0 评论 -
MVCC和间隙读
InnoDB默认的隔离级别是RR(可重复读),可以解决脏读和不可重复读,但是不能解决幻读问题。什么是幻读?事务A读取了一个范围内的数据,此时事务B在该范围内插入了一条数据,并立马提交了事务,此时事务A再次读取这个范围的数据时,发现多了一条,就好像幻觉一样。不可重复读:不可重复读是指在同一个事务内,两个相同的查询返回了不同的结果。例如:事务T1读取某一数据,事务T2读取并修改了该数据,T1为了对读取...原创 2018-03-18 21:25:50 · 3486 阅读 · 2 评论 -
undolog实现事务原子性,redolog实现事务的持久性
undo logUndo log 是为了实现事务的原子性。还用Undo Log来实现多版本并发控制(简称:MVCC)。事务的原子性事务的所有操作,要么全部完成,要不都不做,不能只做一半。如果在执行的过程中发生了错误,要回到事务开始时的状态,所有的操作都要回滚。原理Undo Log的原理很简单,为了满足事务的原子性,在操作任何数据之前,首先将数据备份到一个地方(这个存储数据备份的地方称为Undo L...原创 2018-06-14 00:26:42 · 3514 阅读 · 1 评论 -
MyISAM和INNODB的区别
MySQL5.5版本开始Innodb已经成为Mysql的默认引擎(之前是MyISAM)1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务;2. InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;3. Inno...原创 2018-06-14 00:36:01 · 3284 阅读 · 0 评论 -
Innodb中的事务隔离级别实现原理
<div id="article_content" class="article_content clearfix csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post"> <link rel="stylesheet&am转载 2018-06-14 00:57:13 · 242 阅读 · 0 评论 -
三大范式的理解
◆ 第一范式(1NF):强调的是列的原子性,即列不能够再分成其他几列。考虑这样一个表:【联系人】(姓名,性别,电话)如果在实际场景中,一个联系人有家庭电话和公司电话,那么这种表结构设计就没有达到 1NF。要符合 1NF 我们只需把列(电话)拆分,即:【联系人】(姓名,性别,家庭电话,公司电话)。1NF 很好辨别,但是 2NF 和 3NF 就容易搞混淆。◆ 第二范式(2NF):首先是 1NF,另外包...原创 2018-06-15 00:09:04 · 1651 阅读 · 2 评论 -
事务的四大特性(ACID)
1.原子性(atomicity):一个事务必须视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚,对于一个事务来说,不可能只执行其中的一部分操作,这就是事务的原子性。2.一致性(consistency):数据库总数从一个一致性的状态转换到另一个一致性的状态。也就是说一个事务执行之前和执行之后都必须处于一致性状态。 拿转账来说,假设用户A和用户B两者的钱加起来一...转载 2018-06-15 00:11:42 · 263 阅读 · 0 评论 -
事务的隔离级别
① Serializable (串行化):可避免脏读、不可重复读、幻读的发生。 ② Repeatable read (可重复读):可避免脏读、不可重复读的发生。 ③ Read committed (读已提交):可避免脏读的发生。 ④ Read uncommitted (读未提交):最低级别,任何情况都无法保证。未授权读取级别:也称为读未提交(Read Uncommitted)。以操作同一行...原创 2018-06-15 00:15:53 · 148 阅读 · 0 评论 -
RBAC
实用的RBAC模型的数据库建模 RBAC用户角色权限设计方案RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间,角色与权限之间,一般者是多对多的关系。 角色是什么?可以理解为一定数量的权限的集...原创 2018-07-15 21:20:40 · 3217 阅读 · 0 评论