《高性能MySQL》阅读 -Mysql基本特性

一、 Mysql架构和历史

MySQL基础知识

20210106 22:40-24:00阅读整理
【照世明灯】诗号:
难定纷纷甲子年,千魔荡荡白阳天,苍天旨意著书命,诸子虔诚扶道颠;
佛灯点亮华光现,一线生机救末年。

  1. 高级特性:最重要、最特殊的特性是它的存储引擎架构,这种架构的设计将查询处理以及其他系统任务和数据的存储/提取相分离
  2. 读写锁:在处理并发读/写时,可以通过实现一个由两种类型的锁组成的锁系统来解决问题。这两种类型的锁通常被称为共享锁和排他锁,也叫读锁和写锁;读锁共享,写锁排他
  3. 锁粒度:一种提高共享资源并发性的方式就是让锁的对象更有选择性。尽量只锁定需要修改的部分数据,而不是所有的资源。 所谓锁的策略,就是在锁的开销和数据安全性之间寻求平衡,这种平衡当然也会消耗性能
  4. 表锁:是MySQL中最基本的锁策略,并且是开销最小的策略;它会锁定整张表。一个用户在对表进行写操前,需要先获得写锁,这会阻塞其它对该表的读写操作。只是没有写锁时,其它读取的用户才能获得读锁
  5. 行级锁:行级锁可以最大程度的支持并发处理,但是,行级锁只在存储引擎(InnoDB,XtraDB等引擎)中实现,而MySQL服务层中并没有实现;
  6. 事务:事务就是一组原子性的sql语句,或者说一个独立的工作单元;也就是说事务内的语句,要么全部执行成功,要么全部执行失败
  7. 事务处理系统的标准特性:
    1. 原子性(Atomicity):一个事务必须是一个不可在分割的最小单元
    2. 一致性(Consistency):数据库总数从一个一致性的状态转换到另一个一致性的状态(这个一致性是说整体上的一致性变化,操作的始末,实际结果和预期是一致的;比如:打款前A账户有200元,B账户有200元,如果A打款200给B,打款成功,预期A账户0元,B账户400元,实际结果与预期保持整体上的一致性状态;打款失败,那就是AB账户各200元,保持原有的一致性状态)
    3. 隔离性(Isolation):通常来讲,一个事务在进行最终的事务提交执行之前,对其他事务是不可见的
    4. 持久性(Durability):一旦事务提交,则其所做的修改都会永久的保存到数据库当中,
  8. 隔离级别:
    1. 读未提交(READ-UNCOMMITTED):事务中的修改,即使没有提交,对其他事务也是可见的;事务可以读取未提交的数据,这也就是脏读
    2. 读已提交(READ-COMMITTED):大多数数据库默认的隔离级别。一个事务开始时,只能看见已经提交的事务的修改;换句话说,就是一个事务在提交之前,所做的修改对于其他事务是不可见的,通常也叫做不可重复读,因为两次查询的结果可能不一样
    3. 重复读(REPEATABLE-READ):这个是MySQL的隔离级别。该级别保了在同一个事务中多次读取的数据是一致的。但是在理论上,重复读还不能解决另一个问题,就是在读的过程中被人添加了一条数据,这可能会造成幻读(也就是多出行);;InnoDB和XtraDB存储引擎通过多版本并发控制(MVCC - Mutiversion Concurrency Control)解决了幻读的问题
    4. 可串行化(SERIALIZABLE):最高隔离级别。强制事务串行执行,避免了前面所说的幻读的问题;简单来讲,就是会在读取的每一行上都加锁,所以可能导致大量的超时和锁争抢问题

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

booth-ZDH

爪哇一生

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值