文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL 架构

2016-06-23 19:10

关注

MySQL 架构

执行流程简介

客户端:

select * ftom t where id = 1;

服务端:

  1. 调用连接器,去用户认证、建立连接、查询该用户的权限。
  2. 查询缓存,缓存中如果有记录,则直接返回结果。
  3. 调用解析器,对SQL语句进行词法分析和语法分析,也会进行SQL语法校验。
  4. 调用优化器,对SQL生成执行计划,并且在此时选择哪个索引进行搜索。
  5. 调用执行器,按照SQL的语句的执行计划,去调用存储引擎层,完成操作。
  6. 把查询结果返回给客户端,并且保存到查询缓存中。

MySQL 存储引擎

  1. MySQL数据库特性: 提供了多种存储引擎。
  2. 而且存储引擎是针对表的, 也就是说,同一数据库不同的表可以选择不同的存储引擎 creat table xxx()engine=InnoDB/Memory/MyISAM

MySQL存储引擎种类

  1. MyISAM 高速引擎,拥有较高的插入,查询速度,但不支持事务
  2. InnoDB 5.5版本后MySQL的默认数据库,支持事务和行级锁定,比MyISAM处理速度稍慢
  3. ISAM MyISAM的前身,MySQL5.0以后不再默认安装
  4. MRG_MyISAM(MERGE) 将多个表联合成一个表使用,在超大规模数据存储时很有用
  5. Memory 内存存储引擎,拥有极高的插入,更新和查询效率。但是会占用和数据量成正比的内存空间。只在内存上保存数据,意味着数据可能会丢失
  6. Falcon 一种新的存储引擎,支持事物处理,传言可能是InnoDB的替代者
  7. Archive 将数据压缩后进行存储,非常适合存储大量的独立的,作为历史记录的数据,但是只能进行插入和查询操作
  8. CSV CSV 存储引擎是基于 CSV 格式文件存储数据(应用于跨平台的数据交换)

查看存储引擎:mysql> show engines;

InnoDB和MyISAM存储引擎区别:

  1. 存储文件
    • Innodb: .frm 表定义文件 .ibd 数据文件和索引文件
    • Myisam: .frm 表定义文件 .myd 数据文件 .myi 索引文件
    • Innodb: 表锁、行锁
    • MyISAM: 表锁
  2. 事物
    • Innodb: 支持
    • MyISAM: 不支持

物理结构

日志文件(顺序IO)

可以通过命令查看当前数据库中的日志使用信息: mysql> show variables like "log_%";

错误日志(err log)

log_error可以直接定义为文件路径,也可以为ON|OFF;
log_warings只能使用1|0来定义开关启动

二进制日志(bin log)

  1. 默认是关闭的,需要通过配置:log-bin=mysql-bin进行开启。其中mysql-bin是binlog日志文件的basename,binlog日志文件的名称:mysql-bin-000001.log
  2. 介绍:
    • binlog记录了数据库所有的ddl语句和dml语句,但不包括select语句内容,语句以事件的形式保存,描述了数据的变更顺序,binlog还包括了每个更新语句的执行时间信息,binlog主要作用是用于恢复数据,因此binlog对于灾难恢复和备份恢复来说至关重要。如果是DDL语句,则直接记录到binlog日志,而DML语句,必须通过事务提交才能记录到binlog日志中。
  3. 作用:
    • binlog主要用于实现mysql主从复制、数据备份、数据恢复。

通用查询日志(general query log)

默认情况下通用查询日志是关闭的。由于通用查询日志会记录用户的所有操作,其中还包含增删查改等信息,在并发操作大的环境下会产生大量的信息从而导致不必要的磁盘IO,会影响mysql的性能的。如若不是为了调试数据库的目的建议不要开启查询日志。

慢查询日志(slow query log)

事务日志(redo /undo log)

中继日志(relay log)

数据文件( 随机IO )

InnoDB数据文件

MyIsam数据文件

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯