MySql内部结构

1.内部结构

大体来说,MySQL可以分为server层和存储引擎两部分。

  1. server层包括连接器、查询缓存、分析器、优化器、执行器等,涵盖MySQL的大部分核心服务功能

1.连接器:连接器负责跟客户端建立连接、获取权限、维持和管理连接

2.查询缓存:连接建立完成后,你就可以执行select语句了,此时会先进行查询缓存(缓存时key-value格式,key是sql语句,value是sql语句的查询结果)

3.分析器:

1.语法分析,MySQL需要识别出里面的字符串分别是什么,代表什么。

2.语法分析:根据语法分析的结果,语法分析器会根据语法规则,判断你输入的这个sql语句是否符合MySQL语法。

4.优化器:优化器是在表里面有多个索引的时候,决定使用哪个索引,或者在一个语句有多表关键(join)的时候,决定各个表的连接顺序。

5.执行器:调用存储引擎接口,执行sql语句,得到结果

  1. 存储引擎层:存储引擎层负责数据的存储和提取,其架构模式是插件式的,支持InnoDB、MyISAM、Memory等多个存储引擎

MySQL提供了插件式的存储引擎架构,所以MySQL存在多种存储引擎,可以根据需要使用相应的引擎或者编写存储引擎,存储引擎是基于表的,而不是基于库的。所以存储引擎也可被称为表类型,MySQL5.0支持的存储引擎包含:InnoB、MyISAM、BDB、Memory、MERGE、EXAMPLE、NDB Cluster、ARCHIVE、CSV、BLACKHOLE、 FEDERATED 等,其中InnoDB和BDB提供事务安全表,去哦他存储引擎是非事务安全表。

2.InnoDB和MyISAM的区别?

  1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交。这样会影响速度,所以最好把多条SQL语句放在begin和commit之间,组成一个事务

  1. InnoDB支持外键,而MyISAM不支持

  1. InnoDB是支持表锁和行级锁,MyISAM只支持表锁

3.如何选择存储引擎

如果没有特别的需求,使用默认的InnoDB即可,

MyISAM:已读为主的应用程序,比如播客系统,新闻门户网站

InnoDB:更新(删除)操作频率高,或者要保证数据的完整性,并发量高,支持事务和外键。比如OA自动化办公系统。

4.存储引擎常用命令

  1. show engines 查看MySQL提供的所有存储引擎

  1. show variable like '%storage_engine%'; 查看mysql默认的存储引

  1. 3.show table status like "tableName"\G 查看表的存储引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值