美文网首页
数据库进阶

数据库进阶

作者: manbug | 来源:发表于2017-02-07 15:39 被阅读0次

事务

是一个操作序列,是并发控制的基本单位,为了维护数据库的完整性。比如说删除一个人员,要同时删除他的基本资料,还有相关信息,如文章,信箱等,这一系列语句构成事务。

  • 基本特征:ACID

A:Atomicity 原子性, 一组事务,要么成功,要么撤回。
C:Consistency 稳定性, 有非法数据(外键约束之类),撤回事务。
I:Isolation 隔离性, 事务独立运行(100%隔离,牺牲速度),一旦一个事务运行后果影响其他事务,那么其他事务将撤回。
D:Durability 可靠性,一旦软硬件崩溃,可以从日志中恢复(持久化)。

脏读,不可重复读,幻读

  1. 脏读:一个事务读取了另一个事务未提交的数据,该事务可能回滚。
  2. 不可重复读:一个事务多次读取某数据,在该事务提交前,另一个事务访问了该数据(可能修改数据)。
  3. 幻读:事务不独立执行。比如事务1对表中数据进行修改的同时事务2向表中插入数据。

redo/undo log

  1. undo log:数据修改前旧数据的备份,保证事务原子性。
  2. redo log:事务提交前新数据的备份,保证事务持久性。

若数据库宕机时事务已提交,对比redo log,若未提交,对比undo log。

锁类别

乐观锁:别人的每个举动都觉得他会只读,更新时才加锁判断(像github)
悲观锁:别人的每个举动都觉得他要修改,先加锁。
表锁(表级锁:一次性锁定事务涉及到的表):
开销少,加锁快,锁定粒度大,锁冲突概率高,并发度低,不会出现死锁。
行锁:开销大,加锁慢,锁定粒度小,锁冲突概率低,并发度高,会出现死锁。
页锁:性能介于表锁和行锁之间,会出现死锁。
死锁:两个事务之间互有冲突,导致都锁住,无法完成。

索引

  • 分类:
    1. 唯一索引:不允许任何两行具有相同索引。
    2. 主键索引:主键作为索引。
    3. 聚集索引:聚集索引是指数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同。一个表只能有一个聚集索引。
  • 缺点:增加了数据的存储空间,增加和修改数据时花费时间变长。
  • 修改性能和检索性能是相互矛盾的。

相关文章

  • ssm框架进阶-----统一错误返回处理

    文章链接 ssm入门 ssm框架进阶-----数据库增删改查3.ssm框架进阶-----数据库多表查询 正文 1....

  • 第二章 Senior进阶 数据库

    第二章 Senior进阶 数据库 一、数据库管理系统 二、SQL语句 三、iOS的数据库技术实现

  • iOS数据库技术进阶

    iOS数据库技术进阶http://www.jianshu.com/p/217a769f184e 数据库的技术选型一...

  • Redis进阶系列四(通用指令)

    Redis进阶系列四(通用指令) 1、基本操作指令 2、扩展操作指令 3、数据库操作指令 切换数据库,redis有...

  • Android数据库进阶-从SQLite到ORMLite封装

    项目代码:CameloeAnthony/Ant博客原地址:Android数据库进阶-从SQLite到ORMLite...

  • SQL语句21天打卡,第1天0328

    2020年03月28日软件测试圈「每日进阶」 第1天作业 , 1)创建数据库 istester 2)查看数据库创建...

  • 数据库进阶

    一,系统函数 1、有一组数(12,34,-5.5,103.2,0),求这组数中的最大值和最小值 selectgr...

  • 数据库进阶

    事务 是一个操作序列,是并发控制的基本单位,为了维护数据库的完整性。比如说删除一个人员,要同时删除他的基本资料,还...

  • 数据库进阶

    外键和E.R图 约束管理 添加约束 添加普通约束的方式有两种,一种是创建表的时候直接给字段添加相应的约束,另一种是...

  • JSONP1.0

    进阶课程就是开始和后端打交道 什么是数据库呢? 就是能长久存数据的地方就是数据库,文件系统就是在数据库的基础上的数...

网友评论

      本文标题:数据库进阶

      本文链接:https://www.haomeiwen.com/subject/hbfmittx.html