Mysql总结

一、关系型数据库与非关系型数据库(Nosql)

关系型数据库有Oracle、mysql、SQLite等;非关系型数据库有MongoDb、redis、HBase等

区别:

  1. 关系型数据库,是指采用了关系模型来组织数据的数据库,关系模型指的就是二维表格模型,最大特点就是事务的一致性。非关系型数据库使用键值对存储数据,一般不支持ACID特性
  2. 关系型数据库支持SQL。非关系型数据库不提供sql支持
  3. 关系型数据库为了维护一致性,导致其读写性能比较差,不适合处理海量数据。
  4. 非关系型数据库基于键值对,数据没有耦合性,容易扩展
  5. 关系型数据库则只支持基础类型。非关系型数据库的存储格式是键值对形式、文档形式、图片形式等等

二、事务四大特性

  1. 原子性(Atomicity):整个事务中的所有操作,要么全部完成,要么全部不完成。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态
  2. 一致性(Correspondence):在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。
  3. 隔离性(Isolation):隔离状态执行事务,使它们好像是系统在给定时间内执行的唯一操作。如果有两个事务,运行在相同的时间内,执行 相同的功能,事务的隔离性将确保每一事务在系统中认为只有该事务在使用系统。这种属性有时称为串行化,为了防止事务操作间的混淆,必须串行化或序列化请 求,使得在同一时间仅有一个请求用于同一数据。
  4. 持久性(Durability):在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

三、数据库隔离级别

  1. Serializable (串行化):可避免脏读、不可重复读、幻读的发生。
  2. Repeatable read (可重复读):默认级别。可避免脏读、不可重复读的发生。
  3. Read committed (读已提交):可避免脏读的发生。
  4. Read uncommitted (读未提交):最低级别,任何情况都无法保证。

   1)在MySQL数据库中,支持上面四种隔离级别,默认的为Repeatable read (可重复读);而在Oracle数据库中,只支持Serializable (串行化)级别和Read committed (读已提交)这两种级别,其中默认的为Read committed级别。 

    2)以上四种隔离级别最高的是Serializable级别,最低的是Read uncommitted级别,当然级别越高,执行效率就越低。    

1、mysql 查询事务的隔离级别 select @@tx_isolation; 
2、在MySQL数据库中设置事务的隔离 级别: 
set [glogal | session] transaction isolation level 隔离级别名称; 
set tx_isolation=’隔离级别名称;’
  • 脏读:指在一个事务处理过程里读取了另一个未提交的事务中的数据,造成两个事务得到的数据不一致。
  • 不可重复读:读取了前一事务提交的数据

  • 幻读:读取了另一条已经提交的事务。所不同的是不可重复读查询的都是同一个数据项,而幻读针对的是一批数据整体(比如将一个表的某个数据项全设置为1,这时另一个事务添加了一条等于2的数据,造成幻觉)

四、Mysql的存储引擎

1)  MySql主要有两种存储引擎:InnoDB和MyISAM。其它还有Memory、Archive

2)InnoDB和MyISAM区别

  1. InnoDB支持事物,而MyISAM不支持事物
  2. InnoDB支持行级锁,而MyISAM支持表级锁
  3. InnoDB支持MVCC, 而MyISAM不支持
  4. InnoDB支持外键,而MyISAM不支持
  5. InnoDB不支持全文索引,而MyISAM支持。

3) 应用场景:

  1. MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。
  2. InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能。

4) MVCC机制:一种多版本并发控制机制。MVCC是通过保存数据在某个时间点的快照来实现的,不同存储引擎的MVCC不同,典型的有乐观并发控制和悲观并发控制。它是为了解决代替锁机制控制并发操作带来系统开销较大,能降低其系统开销

五、索引

5.1 索引分类:

  1. 普通索引:仅加速查询
  2. 唯一索引:加速查询 + 列值唯一(可以有null)
  3. 主键索引:加速查询 + 列值唯一(不可以有null)+ 表中只有一个
  4. 组合索引:多列值组成一个索引,专门用于
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值