MySQL优化层次


一、连接数优化

服务端:

  1. 设置最大连接数
  2. 设置连接超时时间

客户端

  1. 使用连接池

二、架构层次优化

减少数据库的压力

  1. 使用redis集群
  2. 基于主从复制的读写分离(mycat)
  3. 分库分表(垂直分库,水平分库)

三、慢查询日志

通过一些mysql慢日志查询配置,过滤慢查询并优化

四、执行计划

在这里插入图片描述

id 执行顺序分析:

  1. 如果查询结果的id不同,则先执行id大的子查询
  2. 如果查询结果的id一样,则从上往下执行

select_type 分析:

  1. select type 简单查询
  2. PRIMARY 主查询
  3. SUBQUERY 内层子查询
  4. DERIVED 临时查询结果集
  5. UNION UNION 查询
  6. UNION RESUL UNION 查询结果集

type 分析:

  1. const 只查询一条记录
  2. system 查询系统表
  3. eq_ref 主键索引或唯一索引查询出一条结果
  4. ref 没有用到唯一索引或者只是用到了联合索引的前缀
  5. range 索引范围查询
  6. index 全部索引查询
  7. all 全表扫描
  8. Null 不需要访问表

possible_keys 分析:

  • 可能使用到的索引

key 分析:

  • 最终用到的索引

ref 分析:

  • 使用哪个列或者常数和索引一起从表中筛选数据

Extra 分析:

  1. using index 用到覆盖索引
  2. using where 数据过滤
  3. using index condition
  4. using filesort 不能使用索引排序
  5. using temporary 用到临时表

五、存储引擎优化和表结构优化

存储引擎

  • 根据业务功能选择合适的存储引擎

表结构优化

  • 记录表和业务表的分离

字段定义

  • 定义合适的类型和长度
  • 非空设置,使用空字符串

大文件存储

  • 相对路径存储
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL的架构自顶向下大致可以分为网络连接层、数据库服务层、存储引擎层和系统文件层四大部分。具体的层次结构如下: 1. 网络连接层:位于整个MySQL体系架构的最上层,主要负责客户端连接器的角色。提供与MySQL服务器建立连接的能力,支持多种服务端语言,例如Java、C、C++、Python等。 2. 数据库服务层:负责MySQL的核心服务,包括SQL接口、查询分析、优化器、缓存以及权限控制等。其中,SQL接口是MySQL最重要的组成部分之一,它负责解析SQL语句并将其转换为可执行的指令。 3. 存储引擎层:负责MySQL的数据存储和检索,不同的存储引擎有不同的特点和适用场景。MySQL支持多种存储引擎,例如InnoDB、MyISAM、Memory等。 4. 系统文件层:负责管理MySQL的数据文件和日志文件等系统文件,包括数据文件、日志文件、配置文件等。 下面是一个简单的MySQL架构图示: ``` +------------------------+ | Application Program | +------------------------+ | +------------------------+ | SQL Interface | +------------------------+ | +------------------------+ | Parser | +------------------------+ | +------------------------+ Optimizer | +------------------------+ | +------------------------+ | Cache | +------------------------+ | +------------------------+ | Storage Engine | +------------------------+ | +------------------------+ | System Files Management| +------------------------+ ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值