MySQL系列-系统架构及存储引擎介绍
程序员文章站
2024-01-26 12:26:28
...
1.什么是MySQL?
MySQL是一款性能高、成本低、可靠性好的最流行的开源数据库,被各大互联网公司使用,目前MySQL属于Oracle公司。不久前MySQL也迎来了目前为止的最大版本更新MySQL8.0,就像Java8一样,MySQL直接从5.7跳到8.0了,同时也意味着这是一次革命性的版本。
2.MySQL的架构图
这是MySQL的基本架构图,其实很多架构都是相通的,这个就非常类似于MVC的架构,做设计的时候其实可以参考这张图。在MySQL的内部也有一个查询缓存模块也就相当于我们的ORM框架的cache(cache真是无处不在啊,从cpu到软件应用)。我们比较注重的就是查询优化器了,但是它的能力有限,我们有时候要进行自己的优化或者指定强制使用某个索引,一般来说数据条数不超过100w也就没必要进行各种优化了,MySQL能够处理这个级别的数据量(官方宣称是300w-500w)。dml和ddl语句都有专门的处理模块等等。访问控制模块就是来管理数据库安全的了,也就是权限控制模块。下面还有多达数十个存储引擎,可能我们就使用过其中的一两个,最为重要的还是innoDB和MyISAM同时也是最为常用的,现在innoDB已经成了MySQL默认的存储引擎了。存储引擎属于表级别,这样就意味着我们创建表的时候可以具*定使用那个存储引擎。例如:
create table ta (
id int primary key,
name varchar(15)
)engine=myisam;
3.innoDB与MyISAM对比
可以看出,MyISAM主要用来查询用的,而且不支持事务和外键,对于dml操作效率不如innoDB。如果你是5.5及以下版本需要设置单表空间才能看到innoDB的存储文件(.ibd格式)。例如:
show variables like '%innodb_file_per_table%';
set global innodb_file_per_table=on;
create table tb(
id int primary key,
name varchar(15)
)
对于锁的粒度而言,MyISAM只支持表锁而innoDB支持表锁和行锁,粒度更细,这也就意味在innoDB行锁开销更大但是同时也获得了更高的并发性。后面我会专门讲解MySQL的锁。
参考文章:
上一篇: php导入excel方法分享
推荐阅读
-
MySQL系列-系统架构及存储引擎介绍
-
mysql 开发基础系列11 存储引擎memory和merge介绍
-
MySQL高级学习笔记(三):Mysql逻辑架构介绍、mysql存储引擎详解
-
mysql 开发基础系列11 存储引擎memory和merge介绍
-
Mysql存储引擎介绍、查看及常用存储引擎讲解
-
荐 【MySQL系列7】InnoDB引擎存储结构及InnoDB特性Change Buffer和Double Writer分析
-
mysql 的逻辑架构 与 存储引擎的介绍
-
mysql 开发基础系列9 存储引擎 MyISAM 介绍
-
荐 MySQL 三万字精华总结 + 面试100 问,和面试官扯皮,吹牛逼!绰绰有余(一:MySql架构,数据类型,存储引擎)收藏系列!
-
面试必会系列 - 2.1 MySQL知识点大汇总(基本架构,存储引擎,锁,事务,索引,B+树等等)