数据库MySQL 01-MySQL基础


MySQL为关系型数据库。

一 存储引擎

1. innoDB 和MyISAM的区别

  • innoDB支持行级锁和表级锁,MyISAM只支持表级锁
  • innoDB支持事务,MyISAM不支持事务
  • innoDB支持外键,MyISAM不支持
  • innoDB支持MVCC,MyISAM不支持

1)表级锁和行级锁如何使用?

  • InnoDB: 隐式加锁,显式加锁
  • 行级锁:共享锁和排它锁

2)数据库的事务如何使用?

3)外键是什么?有什么用?怎么用?

  • 外键约束(FOREIGN KEY):是表的一个特殊字段,经常与主键约束一起使用。对于两个具有关联关系的表而言,主键所在的表就是主表(父表),外键所在的表就是从表(子表)。
  • 用处:定义两张表之间的关系
  • 怎么用:foreign key(repo_id) references repo_table(repo_id))

4)MVCC是什么?有什么用?怎么用?

  • MVCC:Multi-Version Concurrency Control 关键词:读写冲突
  • 作用:是一种用来解决读-写冲突的无锁并发控制。
  • 怎么用:1.MVCC+悲观锁 2. MVCC+乐观锁
  • 原理:在 InnoDB 中,在每一行记录的后面增加两个隐藏列,记录创建版本号和删除版本号。通过版本号和行锁,从而提高数据库系统并发性能。

二、 索引

Java索引

1. B+ Tree 和 哈希索引

三、事务

1.特性

ACID

  • 原子性
  • 一致性
  • 隔离性
  • 持久性

2.并发带来的问题

3.MySQL事务的隔离机制

  • 读未提交: 读到未提交的数据
  • 读已提交:
  • 可重复读:
  • 序列化读

问题:

  1. 脏读:读到未提交的数据
  2. 不可重复读:多次读取得到的数据不一致
  3. 幻读: 事务A首先根据条件索引得到N条数据,然后事务B改变了这N条数据之外的M条或者增添了M条符合事务A搜索条件的数据,导致事务A再次搜索发现有N+M条数据了,就产生了幻读。

脏读:考试看到其他人的答案
不可重复读:开始做题,看别人答案是1,做到一半看别人答案是2
幻读:考试开始时,考场少一个人,结束后看到有两个

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值