AI智能
改变未来

6 MySQL存储引擎


MySQL存储引擎

  • 网络连接层
  • 服务层连接(查询权限)
  • 查询缓存(有缓存则返回结果,无缓存继续执行下一步)
  • 解析器(解析语法)
  • 查询优化器(系统自动优化)
  • 执行器(返回结果且把结果存为缓存,新版本移除了存缓存功能)
  • 存储引擎层
      myisam
      (mysiam存储引擎表由数据文件MYD和索引文件MYI组成,db.opt里存的是该库的编码,该库只缓存索引)锁级别表锁 并发性不高
  • 表损坏修复
    (check table tbname检查表,repair table tbname 修复表)
  • 表压缩
    (myisampack -b -f myisam.MYI)
  • 查询效率高
  • 适用场景为非事务应用,只读类应用,选择密集和插入密集
  • innodb
      innodb使用表空间进行数据存储show variables like ‘innodb_file_per_table’;
      (查看表空间,默认独立表空间, .frm是记录表结构,独立表空间存储在date中)
    • set global like ‘innodb_file_per_table=off’;
      (改变表空间)
    • ON:独立表空间 tablename.ibd
    • OFF:系统表空间 tablename.X X是一个数字
    • 系统表空间和独立表空间如何选择系统表空间会产生io瓶颈,刷新数据的时候是顺序进行的所以会产生文件的io瓶颈
    • 独立表空间可以同时向多个文件刷血数据
  • 锁级别
      行锁 并发性高
  • 支持事务外键
  • csv
      不支持自增
    • 不支持索引
    • 不能为null
  • memory
      数据保存在内存中
  • 系统文件层
  • 什么是锁
      锁主要作用是管理共享资源的并发访问
    • 锁用于实现事务的隔离性
  • 锁的类型
      共享锁(读锁),针对同一份数据多个读操作可以同时进行而不会互相影响
    • 独占锁(写锁),当前写操作没有完成前,它会阻断其他写锁和读锁
  • 锁的粒度
      表级锁
    • 行级锁

    MySQL 的基准测试

    • 基准测试是针对系统设置的一种压力测试
    • 基准测试的特点直接、简单、易于比较,用于评估服务器的处理能力
    • 了能不关心业务逻辑,所使用的查询和业务的真实性可以和业务环境没关系
  • 压力测试特点
      对真实的业务数据进行测试,获得真实系统所能承受的压力
    • 需要针对不同主题,所使用的数据和查询也是真实用到的
    • 基准测试就是简化了的压力测试
  • 基准测试的目的
      建立mysql服务器的性能基准线,确定当前服务器运行情况,确定优化之后的效果
    • 模拟比当前系统更高的负载,处理好并发量与性能最优关系
    • 测试不同的硬件、软件、操作系统配置
    • 测试新的硬件设备是否配置正确
  • 对mysql进行基准测试
      优点:测试设计简单,耗费时间短
    • 缺点:无法全面了解整个系统的性能基线
  • mysql基准测试工具mysqlslap
      模拟服务器负载,并输出相关统计信息
    • 常用参数
  • 赞(0) 打赏
    未经允许不得转载:爱站程序员基地 » 6 MySQL存储引擎