![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
mysql
文章平均质量分 95
czq_lh
愿你看尽世间繁华,归来任是少年。
展开
-
Mysql——高级——多版本并发控制-MVCC(九)
1、什么是MVCCMVCC (Multiversion Concurrency Control),多版本并发控制。MVCC 是通过数据行的多个版本管理来实现数据库的并发控制。这项技术使得在InnoDB的事务隔离级别下执行一致性读操作有了保证。MVCC就是为了查询一些正在被另一个事务更新的行,并且可以看到它们被更新之前的值,这样在做查询的时候就不用等待另一个事务释放锁。MVCC没有正式的标准,在不同的DBMS中MVCC的实现方式可能是不同的,这里是指InnoDB中MVCC的实现机制。2、快照读与当原创 2022-04-13 16:56:35 · 908 阅读 · 0 评论 -
Mysql——高级——事务日志(八)
1、事务日志事务有4种特性:原子性、一致性、隔离性和持久性。事务的隔离性由锁机制实现。而事务的原子性、一致性和持久性由事务的 redo 日志和undo 日志来保证。REDO LOG 称为重做日志,提供再写入操作,恢复提交事务修改的页操作,用来保证事务的持久性。UNDO LOG 称为回滚日志,回滚行记录到某个特定版本,用来保证事务的原子性、一致性。有的DBA或许会认为 REDO是UNDO的逆过程,其实不然。REDO和UNDO都可以视为一种恢复操作。REDO LOG:是存储引擎生成的原创 2022-04-12 18:27:47 · 1850 阅读 · 0 评论 -
Mysql——高级——事务和锁机制(七)
目录1 锁概述2 锁分类3 Mysql 锁3.1 MyISAM 表锁3.1.1 如何加表锁3.2 InnoDB 行锁3.2.1 事务及其ACID属性3.2.2 事务隔离级别3.2.3 InnoDB 的行锁模式3.2.4 无索引行锁升级为表锁3.2.5 间隙锁危害3.2.6 InnoDB 行锁争用情况4 总结1 锁概述锁是计算机协调多个进程或线程并发访问某一资源的机制(避免争抢)。在数据库中,除传统的计算资源(如 CPU、RAM、I/O 等)的争用以原创 2021-03-13 14:17:11 · 240 阅读 · 0 评论 -
Mysql——高级——应用优化(六)
1、应用优化存在很多数据库的优化措施。但是在实际生产环境中,由于数据库本身的性能局限,就必须要对前台的应用进行一些优化,来降低数据库的访问压力。(1)使用连接池对于访问数据库来说,建立连接的代价是比较昂贵的,频繁的创建关闭连接,是比较耗费资源的,有必要建立数据库连接池,来提高访问的性能。(2)减少对MySQL的访问1)避免对数据进行重复检索在编写应用代码时,需要能够理清对数据库的访问逻辑。能够一次连接就获取到结果的,就不用两次连接,这样可以大大减少对数据库无用的重复请求。2)增加原创 2020-11-18 11:46:42 · 217 阅读 · 2 评论 -
Mysql——高级——SQL优化(五)
1、优化order by语句创建索引:create index idx_emp_age_salary on emp(age,salary);(1)两种排序方式1)第一种是通过对返回数据进行排序,也就是通常说的 filesort 排序,所有不是通过索引直接返回排序结果的排序都叫FileSort 排序,效率低。2)第二种通过有序索引顺序扫描直接返回有序数据,这种情况即为 using index,不需要额外排序,效率高(2)多字段排序尽量减少额外的排序,通过索引直接返回有序数据。w原创 2020-11-06 10:44:46 · 210 阅读 · 0 评论 -
Mysql——高级——SQL优化(四)
1、优化SQL步骤(1)查看SQL执行频率MySQL 客户端连接成功后,通过 show [session|global] status 命令可以提供服务器状态信息,也可以根据需要加上参数“session”或者“global”来显示 session 级(当前连接)的计结果和 global 级(自数据库上次启动至今)的统计结果。如果不写,默认使用参数是“session”。下面的命令显示了当前 session 中所有统计参数的值:show status like 'Com_______';.原创 2020-11-04 09:28:33 · 235 阅读 · 0 评论 -
Mysql——高级——存储引擎(三)
1、Mysql的体系结构概览整个MySQL Server由以下组成Connection Pool : 连接池组件 Management Services & Utilities : 管理服务和工具组件 SQL Interface : SQL接口组件 Parser : 查询分析器组件 Optimizer : 优化器组件 Caches & Buffers : 缓冲池组件 Pluggable Storage Engines : 存储引擎 File System : 文件系原创 2020-10-21 13:54:42 · 238 阅读 · 0 评论 -
Mysql——高级——视图、存储过程和函数、触发器(二)
1、视图(1)视图概述视图(View)是一种虚拟存在的表。视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表, 并且是在使用视图时动态生成的。视图就是一条SELECT语句执行后返回的结果集。所以在创建视图时,主要的工作就落在创建这条SQL查询语句上。视图相对于普通的表的优势主要有简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤 好的复合条件的结果集。安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到原创 2020-10-20 22:10:53 · 142 阅读 · 0 评论 -
Mysql——高级——索引(一)
1、索引概述索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。如下面的所示 :左边是数据表,最左边的是数据记录的物理地址。为了加快Col2的查找,可以维护一个右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应数据记录物理地址的指针,这样就可以运用二叉查找快速获取到相应数据。一般来说索引本身也很.原创 2020-10-07 11:27:56 · 222 阅读 · 1 评论