
MySQL
文章平均质量分 60
MySQL底层技术探究
Whisper~~~
00后 后端开发工程师
展开
-
MySQL性能分析——Explain
Explainexplain+SQL语句做什么表的读取顺序数据读取操作的操作类型哪些索引可以使用哪些索引被实际使用表之间的引用每张表有多少行被优化器查询id*select查询的序列号,包含一组数字,表示查询中执行select子句或操作表的顺序三种情况id相同,执行顺序由上而下id不同,如果是子查询,id序号递增,id值越大优先级越高,越先被执行id相同不同,同时存在。id如果相同,可以认为是一组,从上往下顺序执行;在所有组中,id值越大,优先级越高,越先执行。selec原创 2021-12-22 15:29:25 · 143 阅读 · 0 评论 -
MySQL索引
索引排好序的快速查找数据结构以指针的方式指向数据索引方式:概念数据本身之外,数据库还维护着一个满足特定查找算法的数据结构,这些数据结构以某种方式指向数据,这样就可以在这些数据结构的基础上实现高级查找算法,这种数据结构就是索引。优势与劣势优势:提高数据检索效率,降低数据库的IO成本降低数据的排序成本,降低了CPU的消耗劣势:占用空间降低了表的更新速度索引建立花费时间分类单值索引一个索引只包含单个列,一个表可以有多个单列索引一张表建立索引最多不要超过5个唯一索引索原创 2021-12-22 10:18:57 · 480 阅读 · 0 评论 -
事务的特性——持久性(实现原理)
事务的特性——持久性(实现原理)InnoDB读写数据原理磁盘的IO操作所需要花费的成本十分巨大,因此InnoDB在解决这一问题的时候提供了Buffer Pool作为访问数据库数据的缓冲。Buffer Pool位于内存当中,其包含了磁盘中部分数据页的映射。当需要读取数据的时候,InnoDB会首先尝试从Buffer Pool中读取,如果读取不到才会从磁盘读取并放入到Buffer Pool中。当写入数据的时候,会先写入Buffer Pool页面,并将这样的页面标记为脏页,这些修改过的数据页在之后的某个时刻原创 2021-12-08 20:23:37 · 3516 阅读 · 0 评论 -
MySQL的WAL机制
MySQL的WAL机制WAL全称为Write-Ahead Logging,预写日志系统。其主要是指MySQL在执行写操作的时候并不是立刻更新到磁盘上,而是先记录在日志中,之后在合适的时间更新到磁盘中。日志主要分为undo log、redo log、binlog。当内存数据页跟磁盘数据页内容不一致的时候,我们成这个内存页为“脏页”。内存数据写入磁盘后,内存和磁盘上的数据页内容就一致了,称为“干净页”。MySQL真正使用WAL的原因是:磁盘的写操作是随机IO,比较耗性能,所以如果把每一次的更新操作都先写入原创 2021-12-08 20:10:10 · 6847 阅读 · 0 评论 -
事务的特性——原子性(实现原理)
事务的特性——原子性(实现原理)事务的原子性是指一个事务中的所有操作是不可分割的,必须是一个逻辑单元,只能是全部执行成功或者全部执行失败。(典型例子:转账)。那么事务的原子性是如何保证的?在此之前我们先需要说一下MySQL中的WAL机制。WAL机制WAL全称为Write-Ahead Logging,预写日志系统。其主要是指MySQL在执行写操作的时候并不是立刻更新到磁盘上,而是先记录在日志中,之后在合适的时间更新到磁盘中。日志主要分为undo log、redo log、binlog。事务原子性是如何原创 2021-12-08 15:19:36 · 7645 阅读 · 0 评论 -
MySQL事务
MySQL事务事务简介事务:一个或一组sql语句组成一个执行单元,要么全部执行,要么全部不执行。举例: 转账用户A需要从银行转账,那么就涉及到转出的账户需要扣掉转账的金额,转入的账户需要加上转入的金额,这两个操作的执行为了确保数据的一致性,需要同时成功或同时失败,因此就需要使用事务来进行处理。和事务相关的sql语句commit :提交事务rollback :回滚事务在MySQL中默认情况下,事务是自动提交的,执行一条DML语句即开启了事务,并且自动提交了事务事务的特性(ACID)原子性原创 2021-12-08 14:33:56 · 655 阅读 · 0 评论