![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据库
文章平均质量分 85
thesprit
譬如朝露 去日苦多
展开
-
【数据库】浅入MySQL优化
浅入MySQL优化前言抛开过程谈结果的都是傻叉领导。。在下不会做这种事,先来简单看一遍MySQL的运行机制①、建立连接通过客户端/服务器通信协议与MySQL建立连接。MySQL 客户端与服务端的通信方式是 “ 半双工 ”。对于每一个 MySQL 的连接,时刻都有一个线程状态来标识这个连接正在做什么。你还记得锁表的时候会去查show processlist;吗?他能查到当前用户正在运行的线程信息。线程状态来自于此②、查询缓存如果开启了查询缓存且在查询缓存过程中查询到完全相同的SQL语句,原创 2021-12-17 20:22:07 · 1016 阅读 · 1 评论 -
【数据库】MySQL的二级索引
MySQL的二级索引一、前言1、需要了解MySQL的索引。2、在MySQL中,创建一张表时会默认为主键创建聚簇索引,B+树将表中所有的数据组织起来,即数据就是索引主键所以在InnoDB里,主键索引也被称为聚簇索引,索引的叶子节点存的是整行数据。而除了聚簇索引以外的所有索引都称为二级索引,二级索引的叶子节点内容是主键的值。二、创建二级索引创建二级索引:CREATE INDEX [index name] ON [table name]([column name]);或者ALTER TABLE原创 2021-01-22 16:47:11 · 5664 阅读 · 1 评论 -
【数据库】MySQL的MVCC(Multi-Version Concurrency Control)多版本并发控制
MySQL的MVCC(Multi-Version Concurrency Control)多版本并发控制一、前言1、MySQL为了保证事务的隔离性,实现数据库的隔离级别,引入了MVCC2、需要了解undo log入门。3、需要了解快照ReadView入门。4、先看下面的MySQL的快照读、当前读。快照读:读取的是记录的可见版本 (有可能是历史版本),不用加锁。简单纯粹的查询操作,属于快照读。如:SELECT * FROM student WHERE id=1;当前读:读取的是记录的最原创 2021-01-22 14:34:39 · 247 阅读 · 1 评论 -
【数据库】MySQL的ReadView
MySQL的ReadView前言1、根据事务的隔离级别,我们已经知道读未提交、读已提交、可重复读、串行化,随着隔离级别的加强,能解决脏写、脏读、不可重复读、幻读的问题。2、InnoDB 是 MySQL(mysql-5.1版本后) 默认的存储引擎,InnoDB 默认的隔离级别就是可重复读。在这个隔离级别下,开启事务之后,多次读写同一行数据,读到的值永远是一致。3、当 MySQL 执行写操作之前,会把即将被修改的数据记录到 undo log 日志里面。MySQL可从 undo log 日志中,读取到原插原创 2021-01-21 19:26:24 · 8700 阅读 · 18 评论 -
【数据库】MySQL中的几种日志
MySQL中的几种日志前言MySQL中有几种日志文件,分别是:redo log 重做日志undo log 回滚日志binlog 二进制日志errorlog 错误日志slow query log 慢查询日志general log 一般查询日志relay log 中继日志按照重点程度,这里简单介绍binlog、redo log和undo log先看一个图,看完文章后可以重新再看看这个图,你也可以自己画并补充的更完整:binlog主从同步数据,一般就是通过它实现的。它是没有MySQ原创 2021-01-19 16:14:28 · 749 阅读 · 0 评论