一、 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):最高隔离级别。强制事务串行执行,避免了前面所说的幻读的问题;简单来讲,就是会在读取的每一行上都加锁,所以可能导致大量的超时和锁争抢问题

《高性能MySQL》阅读 -Mysql基本特性相关推荐

  1. 高性能mysql学习笔记--高级特性

    高性能mysql 七:高级特性 1,分区表 分区表是一个独立的逻辑表,但是底层由多个无力字表组成,实现分区的代码实际上是对一组地层表的句柄对象的封装,对分区表的请求,都会通过句柄对象转化成对储存引擎的 ...

  2. PostgreSQL 优势,MySQL 数据库自身的特性并不十分丰富,触发器和存储过程的支持较弱,Greenplum、AWS 的 Redshift 等都是基于 PostgreSQL 开发的...

    PostgreSQL 优势 2016-10-20 21:36 686人阅读 评论(0) 收藏 举报  分类: MYSQL数据库(5)  PostgreSQL 是一个自由的对象-关系数据库服务器(数据库 ...

  3. 高性能MySQL(1)——MYSQL架构

    MySQL最重要.最与众不同的特性是它的存储引擎架构,这种架构将查询处理与数据的存储/提取相分离,使得可以在使用时根据不同的需求来选择数据存储的方式. 一.Mysql逻辑架构 如果能在头脑中构建出一幅 ...

  4. mysql force index报错_新特性解读 | MySQL 8.0 索引特性4-不可见索引

    MySQL 8.0 实现了索引的隐藏属性.当然这个特性很多商业数据库早就有了,比如ORACLE,在11g中就实现了.我来介绍下这个小特性. 介绍 INVISIBLE INDEX,不可见索引或者叫隐藏索 ...

  5. MySQL 8.0新特性--CTE Recurive(二)

    上一篇介绍了CTE的基本用法,参考MySQL 8.0新特性--CTE(一),本篇再来介绍一下CTE Recurive递归. 1.什么是CTE Recurive? A recursive common ...

  6. 涂抹mysql笔记-mysql复制特性

    涂抹mysql笔记-mysql复制特性 mysql复制特性:既可以实现整个服务(all databases)级别的复制,也可以只复制某个数据库或某个数据库中的某个指定的表对象.即可以实现A复制到B(主 ...

  7. mysql8.0创建属性,MySQL 8.0新特性 — 管理端口的使用简介

    前言 下面这个报错,相信大多数童鞋都遇见过:那么碰到这个问题,我们应该怎么办呢?在MySQL 5.7及之前版本,出现"too many connection"报错,超级用户root ...

  8. c语言 字符串 正序再倒序_新特性解读 | MySQL 8.0 索引特性3 -倒序索引

    原创作者:杨涛涛 我们今天来介绍下 MySQL 8.0 引入的新特性:倒序索引. MySQL长期以来对索引的建立只允许正向asc存储,就算建立了desc,也是忽略掉. 比如对于以下的查询,无法发挥索引 ...

  9. 记录mysql中的隐患特性

    一.背景 参考链接: http://http://www.360doc.com/content/16/1204/19/27425026_611850045.shtml 1.1 MYSQL在遇到/*! ...

  10. 华为云 mysql 主备_安全性能两手抓,华为云MySQL“非双一特性”助力企业业务稳定高效运行...

    各位亲爱的开发者们,为了给大家分享更多精彩的技术干货,给大家创造更加纯净的开发者交流环境,请移步至csdn平台华为云专区哦,点击传送门关注:https://blog.csdn.net/devcloud ...

最新文章

  1. Git Rebase教程: 用Git Rebase让时光倒流
  2. Bitmap那些事之内存占用计算和加载注意事项
  3. 矩阵为奇异工作精度_外积与复合矩阵,特征值/奇异值的乘积型受控,Hodge对偶与伴随矩阵...
  4. ie统计报表html,IE中动态添加表格
  5. java 制作快捷键,Java快捷键制作
  6. Analyzer报表结果行
  7. php创建mysql分区,MySql创建分区表
  8. 腐烂--发霉--生锈
  9. pytorch def __init__(self, num_classes, bkg_label, top_k, conf_thresh, nms_thresh):
  10. Android性能分析工具“TraceView”,“Systrace UI”
  11. 如何合理的使用统计图表
  12. 基于pyod中机器学习与神经网络方法的异常值识别方法合集(含2022年全国服务外包大赛实例)
  13. InnoDB引擎--事务持久性
  14. python列表索引超出范围 等于啥_Python列表错误,列表索引超出范围
  15. Flak执行端口被占用OSError: [Errno 48] Address already in use
  16. 2020-10-14
  17. 计算机应用基础教程段永平,段永平
  18. 微信测试是否被删软件,微信右上角的+号如何检测是否被好友删除
  19. 云计算:数据中心之虚拟机
  20. 淘宝api开放平台SDK调用对接淘宝或天猫

热门文章

  1. 页式存储系统的逻辑地址是由页号和页内地址两部分组成的
  2. 为什么电梯安装企业项目接得更多,利润更少?
  3. Qt MDI Window开发
  4. 苹果计算机符号怎么打开,Mac电脑如何输入command(⌘)、option(⌥)、shift(⇧)等特殊符号...
  5. oracle 手动添加分区,Oracle 分区表怎么添加分区
  6. matlab加性高斯白噪声方差
  7. java钟表动画_JavaFX实现简易时钟效果
  8. java field.gettype,Java Field getType()用法及代码示例
  9. 相机变换AND正交投影AND透视投影
  10. MySQL - 实战 棋牌游戏数据库开发