MSQL架构篇

架构篇

  • MySQL要点:介绍安装,sql语句,架构,索引,锁与事务,性能分析,性能优化,集群

逻辑架构

  • 客户端–>sql层–>可插拔式存储引擎层–>文件系统

  • 需求–>处理sql–>操作文件系统

SQL层

  • 管理工具
  • 连接池
  • SQL接口:接收SQL的DDL和DML
  • 解析器
  • 优化器:mysql优化sql语句
  • 缓存

存储引擎层

分类
  • MYISAM
    • 5.5版本之前的默认存储引擎
    • 不支持事务和行锁(适合读)
  • InnoDB
    • 5.5以后(包含)的默认存储引擎
    • 支持事务和行级别的锁
    • 支持外键
  • Memory
    • 内存引擎
    • 保存在内存中
区别
InnoDBMYISAM
存储文件.frm表定义文件
.ibd数据和索引文件
.frm表定义文件
.myd数据文件
.myi索引文件
表锁,行锁表锁
事务支持(读写)不支持(读多)
count扫表计数有专门存储引擎的地方
(空间换时间),where也扫表
外键支持不支持
数据结构B+TreeB+Tree

执行流程

在这里插入图片描述

物理结构

日志文件

  • 错误日志:默认是开启的,而且从5.5.7以后无法关闭错误日志

  • 二进制日志:binlog记录了数据库所有的ddl语句和dml语句,但不包括select语句内容,语句以事件的形式保存,描述了数据的变更顺序,binlog还包括了每个更新语句的执行时间信息。如果是DDL语句,则直接记录到
    binlog日志,而DML语句,必须通过事务提交才能记录到binlog日志中。 生产中开启(数据备份、恢复、主从)

  • 通用查询日志:生产中不开启

  • 慢查询日志:默认是关闭的,SQL调优 定位慢的 select

    #开启慢查询日志
    slow_query_log=ON
    #慢查询的阈值
    long_query_time=3
    #日志记录文件如果没有给出file_name值, 默认为主机名,后缀为-slow.log。如果给出了文件名,
    但不是绝对路径名,文件则写入数据目录。
    slow_query_log_file=file_name
    
  • 重做日志

  • 回滚日志

  • 中继日志

  • 看日志开启情况:

    • show variables like ‘log_%’;

数据文件

  • 查看数据文件位置
    • SHOW VARIABLES LIKE ‘%datadir%’;
  • 日志文件:顺序写入磁盘,一次寻找磁道,快
  • 数据文件:随机写入磁盘,多次寻找磁道,慢
  • 数据写入为甚随机写入:数据有删除,会产生多余空间,最后都是通过磁盘整理操作整理空间
  • 磁盘数据落盘:利用日志文件提升IO的性能
    • 先将数据文件写入到日志文件中,因为快,再集中将日志文件写入到数据文件中.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值