Java Blog程序园Java 杂谈

了解MySQL这一篇就够了

2019-07-16  本文已影响6人  爪哇部落格

MySQL架构

在介绍MySQL之前,我们先了解一下MySQL的架构,分别从宏观和细节两个方面出发。

宏观

从宏观上来看,MySQL Server 端的架构分为两层,分别是:SQL 层,以及存储引擎层。其中SQL层负责处理与SQL相关的业务,存储引擎层负责数据的存储。

架构图 实现细节

存储引擎 Innodb 与 Myisam 对比

Innodb Myisam
文件结构 .frm文件,idb数据文件 .frm文件,.myd数据文件,.myi索引文件
表锁,行锁 表锁
事务 支持 不支持
CRUD 读写 读多
count 扫表 专门存储的地方
索引结构 B+Tree B+Tree

索引

在我们的生活中有很多索引应用的例子,比如,字典,数据目录;它们的原理都是通过缩小数据检索的范围,以便更快的获得目标数据;同样的数据库的索引也是同样的道理,但是却别字典等情况复杂的多,除了我们常见的等值查询以外,还有复杂的范围查询(in,><,like);就这样B+Tree应运而生,它的特点就是树的高度可控,即把每次查询数据需要的磁盘IO控制在一个较小的数据量级。

建索引的几大原则

SQL执行计划

我们可以利用SQL执行计划,来分析慢SQL,对SQL进行一定程度的优化,使用起来也很简单,在查询语句前加上explain即可。

我们一起来看以下示例,各项数据内容如下:


示例

由好到差的顺序依次是:system,const,eq_ref,ref,fulltext,ref_or_null,unique_subquery,index_subquery,range,index_merge,index,all

上一篇 下一篇

猜你喜欢

热点阅读