MySQL
时小浅
折腾数据.折腾代码.折腾规约.折腾架构.折腾需求.折腾服务.生命不息.折腾不止.
展开
-
【必须掌握】 MySQL ACID 特性
ACID 特性在关系型数据库管理系统中,一个逻辑工作单元要成为事务,必须满足这 4 个特性,即所谓的 ACID:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。1 原子性原子性:事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。修改—》Buffer Pool修改—》刷盘。可能会有下面两种情况:事务提交了,如果此时Buffer Pool的脏页没有刷盘,如何保证修改的数据生效? Redo如果事务没提交,但原创 2020-11-21 18:08:24 · 604 阅读 · 0 评论 -
【必须掌握】MySQL查询优化
1 慢查询定位开启慢查询日志查看 MySQL 数据库是否开启了慢查询日志和慢查询日志文件的存储位置的命令如下:SHOW VARIABLES LIKE 'slow_query_log%'通过如下命令开启慢查询日志:SET global slow_query_log = ON; SET global slow_query_log_file = 'OAK-slow.log'; SET global log_queries_not_using_indexes = ON; SET long_quer原创 2020-11-21 18:00:25 · 116 阅读 · 0 评论 -
MySQL 之 索引分析与优化
索引分析与优化1 EXPLAINMySQL 提供了一个 EXPLAIN 命令,它可以对 SELECT 语句进行分析,并输出 SELECT 执行的详细信息,供开发人员有针对性的优化。例如:EXPLAIN SELECT * from user WHERE id < 3;EXPLAIN 命令的输出内容大致如下:select_type表示查询的类型。常用的值如下:SIMPLE : 表示查询语句不包含子查询或unionPRIMARY:表示此查询是最外层的查询UNION:表示此查询是UNIO原创 2020-11-21 17:47:50 · 196 阅读 · 0 评论 -
【必须掌握】MySQL索引原理
索引原理MySQL官方对索引定义:是存储引擎用于快速查找记录的一种数据结构。需要额外开辟空间和数据维护工作。索引是物理数据页存储,在数据文件中(InnoDB,ibd文件),利用数据页(page)存储。索引可以加快检索速度,但是同时也会降低增删改操作速度,索引维护需要代价。索引涉及的理论知识:二分查找法、Hash和B+Tree。1 二分查找法二分查找法也叫作折半查找法,它是在有序数组中查找指定数据的搜索算法。它的优点是等值查询、范围查询性能优秀,缺点是更新数据、新增数据、删除数据维护成本高。首原创 2020-11-21 17:31:08 · 75 阅读 · 0 评论 -
MySQL之索引类型
索引类型索引可以提升查询速度,会影响where查询,以及order by排序。MySQL索引类型如下:从索引存储结构划分:B Tree索引、Hash索引、FULLTEXT全文索引、R Tree索引从应用层次划分:普通索引、唯一索引、主键索引、复合索引从索引键值类型划分:主键索引、辅助索引(二级索引)从数据存储和索引键值逻辑关系划分:聚集索引(聚簇索引)、非聚集索引(非聚簇索引)1.1 普通索引这是最基本的索引类型,基于普通字段建立的索引,没有任何限制。创建普通索引的方法如下:CREATE原创 2020-11-21 17:22:24 · 69 阅读 · 0 评论 -
MySQL InnoDB存储结构之内存结构
从MySQL 5.5版本开始默认使用InnoDB作为引擎,它擅长处理事务,具有自动崩溃恢复的特性,在日常开发中使用非常广泛。下面是官方的InnoDB引擎架构图,主要分为内存结构和磁盘结构两大部分。一、InnoDB内存结构内存结构主要包括Buffer Pool、Change Buffer、Adaptive Hash Index和Log Buffer四大组件。1. Buffer Pool:缓冲池,简称BP。BP以Page页为单位,默认大小16K,BP的底层采用链表数据结构管理Page。在InnoDB访问原创 2020-10-28 09:06:51 · 441 阅读 · 0 评论 -
进一步认识MySQL存储引擎
存储引擎在MySQL的体系架构中位于第三层,负责MySQL中的数据的存储和提取,是与文件打交道的子系统,它是根据MySQL提供的文件访问层抽象接口定制的一种文件访问机制,这种机制就叫作存储引擎。使用show engines命令,就可以查看当前数据库支持的引擎信息。在5.5版本之前默认采用MyISAM存储引擎,从5.5开始采用InnoDB存储引擎。nnoDB:支持事务,具有提交,回滚和崩溃恢复能力,事务安全MyISAM:不支持事务和外键,访问速度快Memory:利用内存创建表,访问速度非常快,原创 2020-10-28 08:59:02 · 102 阅读 · 0 评论 -
MySQL运行机制的那些事
MySQL运行机制建立连接①建立连接(Connectors&Connection Pool),通过客户端/服务器通信协议与MySQL建立连接。MySQL 客户端与服务端的通信方式是 “ 半双工 ”。对于每一个 MySQL 的连接,时刻都有一个线程状态来标识这个连接正在做什么。**通讯机制:**全双工:能同时发送和接收数据,例如平时打电话。半双工:指的某一时刻,要么发送数据,要么接收数据,不能同时。例如早期对讲机单工:只能发送数据或只能接收数据。例如单行道线程状态:show pro原创 2020-10-28 08:52:23 · 160 阅读 · 1 评论 -
进一步认识MySQL体系架构
MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层。一、网络连接层客户端连接器(Client Connectors):提供与MySQL服务器建立的支持。目前几乎支持所有主流的服务端编程技术,例如常见的 Java、C、Python、.NET等,它们通过各自API技术与MySQL建立连接。二、服务层(MySQL Server)服务层是MySQL Server的核心,主要包含系统管理和控制工具、连接池、SQL接口、解析器、查询优化器和缓存六个部分连接池(Connec原创 2020-10-28 08:44:11 · 94 阅读 · 1 评论