《高性能MySQL》阅读 -Mysql基本特性
一、 Mysql架构和历史
MySQL基础知识
20210106 22:40-24:00阅读整理
【照世明灯】诗号:
难定纷纷甲子年,千魔荡荡白阳天,苍天旨意著书命,诸子虔诚扶道颠;
佛灯点亮华光现,一线生机救末年。
- 高级特性:最重要、最特殊的特性是它的存储引擎架构,这种架构的设计将查询处理以及其他系统任务和数据的存储/提取相分离
- 读写锁:在处理并发读/写时,可以通过实现一个由两种类型的锁组成的锁系统来解决问题。这两种类型的锁通常被称为共享锁和排他锁,也叫读锁和写锁;读锁共享,写锁排他
- 锁粒度:一种提高共享资源并发性的方式就是让锁的对象更有选择性。尽量只锁定需要修改的部分数据,而不是所有的资源。 所谓锁的策略,就是在锁的开销和数据安全性之间寻求平衡,这种平衡当然也会消耗性能
- 表锁:是MySQL中最基本的锁策略,并且是开销最小的策略;它会锁定整张表。一个用户在对表进行写操前,需要先获得写锁,这会阻塞其它对该表的读写操作。只是没有写锁时,其它读取的用户才能获得读锁
- 行级锁:行级锁可以最大程度的支持并发处理,但是,行级锁只在存储引擎(InnoDB,XtraDB等引擎)中实现,而MySQL服务层中并没有实现;
- 事务:事务就是一组原子性的sql语句,或者说一个独立的工作单元;也就是说事务内的语句,要么全部执行成功,要么全部执行失败
- 事务处理系统的标准特性:
- 原子性(Atomicity):一个事务必须是一个不可在分割的最小单元
- 一致性(Consistency):数据库总数从一个一致性的状态转换到另一个一致性的状态(这个一致性是说整体上的一致性变化,操作的始末,实际结果和预期是一致的;比如:打款前A账户有200元,B账户有200元,如果A打款200给B,打款成功,预期A账户0元,B账户400元,实际结果与预期保持整体上的一致性状态;打款失败,那就是AB账户各200元,保持原有的一致性状态)
- 隔离性(Isolation):通常来讲,一个事务在进行最终的事务提交执行之前,对其他事务是不可见的
- 持久性(Durability):一旦事务提交,则其所做的修改都会永久的保存到数据库当中,
- 隔离级别:
- 读未提交(READ-UNCOMMITTED):事务中的修改,即使没有提交,对其他事务也是可见的;事务可以读取未提交的数据,这也就是脏读
- 读已提交(READ-COMMITTED):大多数数据库默认的隔离级别。一个事务开始时,只能看见已经提交的事务的修改;换句话说,就是一个事务在提交之前,所做的修改对于其他事务是不可见的,通常也叫做不可重复读,因为两次查询的结果可能不一样
- 重复读(REPEATABLE-READ):这个是MySQL的隔离级别。该级别保了在同一个事务中多次读取的数据是一致的。但是在理论上,重复读还不能解决另一个问题,就是在读的过程中被人添加了一条数据,这可能会造成幻读(也就是多出行);;InnoDB和XtraDB存储引擎通过多版本并发控制(MVCC - Mutiversion Concurrency Control)解决了幻读的问题
- 可串行化(SERIALIZABLE):最高隔离级别。强制事务串行执行,避免了前面所说的幻读的问题;简单来讲,就是会在读取的每一行上都加锁,所以可能导致大量的超时和锁争抢问题
《高性能MySQL》阅读 -Mysql基本特性相关推荐
- 高性能mysql学习笔记--高级特性
高性能mysql 七:高级特性 1,分区表 分区表是一个独立的逻辑表,但是底层由多个无力字表组成,实现分区的代码实际上是对一组地层表的句柄对象的封装,对分区表的请求,都会通过句柄对象转化成对储存引擎的 ...
- PostgreSQL 优势,MySQL 数据库自身的特性并不十分丰富,触发器和存储过程的支持较弱,Greenplum、AWS 的 Redshift 等都是基于 PostgreSQL 开发的...
PostgreSQL 优势 2016-10-20 21:36 686人阅读 评论(0) 收藏 举报 分类: MYSQL数据库(5) PostgreSQL 是一个自由的对象-关系数据库服务器(数据库 ...
- 高性能MySQL(1)——MYSQL架构
MySQL最重要.最与众不同的特性是它的存储引擎架构,这种架构将查询处理与数据的存储/提取相分离,使得可以在使用时根据不同的需求来选择数据存储的方式. 一.Mysql逻辑架构 如果能在头脑中构建出一幅 ...
- mysql force index报错_新特性解读 | MySQL 8.0 索引特性4-不可见索引
MySQL 8.0 实现了索引的隐藏属性.当然这个特性很多商业数据库早就有了,比如ORACLE,在11g中就实现了.我来介绍下这个小特性. 介绍 INVISIBLE INDEX,不可见索引或者叫隐藏索 ...
- MySQL 8.0新特性--CTE Recurive(二)
上一篇介绍了CTE的基本用法,参考MySQL 8.0新特性--CTE(一),本篇再来介绍一下CTE Recurive递归. 1.什么是CTE Recurive? A recursive common ...
- 涂抹mysql笔记-mysql复制特性
涂抹mysql笔记-mysql复制特性 mysql复制特性:既可以实现整个服务(all databases)级别的复制,也可以只复制某个数据库或某个数据库中的某个指定的表对象.即可以实现A复制到B(主 ...
- mysql8.0创建属性,MySQL 8.0新特性 — 管理端口的使用简介
前言 下面这个报错,相信大多数童鞋都遇见过:那么碰到这个问题,我们应该怎么办呢?在MySQL 5.7及之前版本,出现"too many connection"报错,超级用户root ...
- c语言 字符串 正序再倒序_新特性解读 | MySQL 8.0 索引特性3 -倒序索引
原创作者:杨涛涛 我们今天来介绍下 MySQL 8.0 引入的新特性:倒序索引. MySQL长期以来对索引的建立只允许正向asc存储,就算建立了desc,也是忽略掉. 比如对于以下的查询,无法发挥索引 ...
- 记录mysql中的隐患特性
一.背景 参考链接: http://http://www.360doc.com/content/16/1204/19/27425026_611850045.shtml 1.1 MYSQL在遇到/*! ...
- 华为云 mysql 主备_安全性能两手抓,华为云MySQL“非双一特性”助力企业业务稳定高效运行...
各位亲爱的开发者们,为了给大家分享更多精彩的技术干货,给大家创造更加纯净的开发者交流环境,请移步至csdn平台华为云专区哦,点击传送门关注:https://blog.csdn.net/devcloud ...
最新文章
- Git Rebase教程: 用Git Rebase让时光倒流
- Bitmap那些事之内存占用计算和加载注意事项
- 矩阵为奇异工作精度_外积与复合矩阵,特征值/奇异值的乘积型受控,Hodge对偶与伴随矩阵...
- ie统计报表html,IE中动态添加表格
- java 制作快捷键,Java快捷键制作
- Analyzer报表结果行
- php创建mysql分区,MySql创建分区表
- 腐烂--发霉--生锈
- pytorch def __init__(self, num_classes, bkg_label, top_k, conf_thresh, nms_thresh):
- Android性能分析工具“TraceView”,“Systrace UI”
- 如何合理的使用统计图表
- 基于pyod中机器学习与神经网络方法的异常值识别方法合集(含2022年全国服务外包大赛实例)
- InnoDB引擎--事务持久性
- python列表索引超出范围 等于啥_Python列表错误,列表索引超出范围
- Flak执行端口被占用OSError: [Errno 48] Address already in use
- 2020-10-14
- 计算机应用基础教程段永平,段永平
- 微信测试是否被删软件,微信右上角的+号如何检测是否被好友删除
- 云计算:数据中心之虚拟机
- 淘宝api开放平台SDK调用对接淘宝或天猫
热门文章
- 页式存储系统的逻辑地址是由页号和页内地址两部分组成的
- 为什么电梯安装企业项目接得更多,利润更少?
- Qt MDI Window开发
- 苹果计算机符号怎么打开,Mac电脑如何输入command(⌘)、option(⌥)、shift(⇧)等特殊符号...
- oracle 手动添加分区,Oracle 分区表怎么添加分区
- matlab加性高斯白噪声方差
- java钟表动画_JavaFX实现简易时钟效果
- java field.gettype,Java Field getType()用法及代码示例
- 相机变换AND正交投影AND透视投影
- MySQL - 实战 棋牌游戏数据库开发