美文网首页
MySQL性能调优与架构设计读书笔记

MySQL性能调优与架构设计读书笔记

作者: 求索 | 来源:发表于2020-03-27 22:50 被阅读0次

简单、高效、可靠

使用场景

  • web站点
  • 日志记录系统
  • 数据仓库
  • 嵌入式开发

MySQL文件

  • 数据文件

    • .frm 元数据
    • .myi myisam 引擎数据文件
    • .ibd infodb 独享空间存储文件,每个表独享文件
    • .ibdata 表使用同一个文件
  • 日志文件

    • error log
    • binlog
    • updatelog
    • slow query log
    • querylog
    • infodb 的redo log

MySQL逻辑模块

  • 环境

    • 初始化
    • 核心
    • 网络交互
    • client和server交互协议模块
    • 用户模块
    • 安全控制
    • 连接管理、连接池、线程管理
  • SQL实现

    • query解析与转发
    • query cache
    • query 优化
  • 数据存储

    • 表变更管理
    • 表管理
    • 表维护
  • 系统

    • 系统状态管理
      -复制转发
    • 日志管理
    • 存储引擎接口

数据引擎

MySQL的插件式存储引擎主要包括MyISAM、InnoDB、NDB Cluster、Maria、Falcon、Memory、Archive、Merge、Federated等,其中最著名而且使用最为广泛的是MyISAM和InnoDB两种存储引擎。MyISAM是MySQL最早的ISAM存储引擎的升级版本,也是MySQL默认的存储引擎。

性能优化关键因素

  • 不合理需求
  • 无用数据堆积
  • 架构影响
  • 不合理数据
    • 流式数据,比如日志
    • 二进制媒体数据
    • 超大文本
  • 未合理使用缓存
    • 频繁使用的数据
    • 不频繁更新的数据
  • 统计数据处理
  • 热点数据未做处理

性能三大指标

最大的性能瓶颈就是在于磁盘IO,也就是数据的存取操作上面。

  • io
  • CPU

CPU损耗在于计算,比如sort,groupby等。而记录行数损耗的是io,比如查询100条记录主要消耗的是io。

iops与吞吐量

可以通过内存与加载缓解io瓶颈,原理:内存读取总比磁盘块。

infodb 缓存配置

schema设计

  • 冗余设计

infodb

对于InnoDB的存储引擎,如果使用的是共享表空间来存储数据,那么须要打开的文件描述符就比较少,而如果使用的是独享表空间方式来存储数据,由于存储表数据的数据文件较多,则同样会打开很多的表文件描述符。除了数据库的实际表或索引打开时须要使用文件描述符以外,临时文件同样也须要,因此同样会占用系统中open_files_limit的设置限额。

  • tablecache
table_open_cache = max_connections * N

这个N为执行Query时,Query所包含的Table的个数也并不是太合适,因为不能忽略索引文件的打开。虽然索引文件描述符在各个连接线程之间是可以共享的,但至少每个索引文件总还是需要一个的。

  • Sort Buffer、Join Buffer和Read Buffer

其它搜索引擎优化

搜索引擎优化主要针对配置优化,可以先看系统配置参数,然后再修改调整

show variables like '%buffer%';

profile

  • 开启
SET profiling=1;
  • 查询当前多个profile概要信息
show profiles;
  • 查询当个query详细信息
show profile cpu, block io for query 6;
  • show profile 语法
show profile ✘✘✘ for query 6;
  • 其它命令
    • ALL 显示所有性能信息
    • BLOCK IO 显示块IO操作的次数
    • CONTEXT SWITCHES 显示上下文切换次数,-
    • 不管是主动还是被动
    • CPU 显示用户CPU时间、系统CPU时间
    • IPC 显示发送和接收的消息数量
    • MEMORY [暂未实现]
    • PAGE FAULTS 显示页错误数量
    • SOURCE 显示源码中的函数名称与位置
    • SWAPS 显示SWAP的次数

相关文章

网友评论

      本文标题:MySQL性能调优与架构设计读书笔记

      本文链接:https://www.haomeiwen.com/subject/dikduhtx.html