美文网首页数据库
MYSQL 基础优化

MYSQL 基础优化

作者: ___n | 来源:发表于2018-10-10 09:15 被阅读13次

语句优化

优化工具

检查问题常用工具:
image
不常用但好用的工具:
image

系统层面

cpu方面:

vmstat、sar top、htop、nmon、mpstat

内存:

free 、ps -aux 、

IO 设备(磁盘、网络):

iostat 、 ss 、 netstat 、 iptraf、iftop、lsof、

vmstat 命令说明:

Procs:r 显示有多少进程正在等待 CPU 时间。b 显示处于不可中断的休眠的进程数量。在等待 I/O

Memory:swpd 显示被交换到磁盘的数据块的数量。未被使用的数据块,用户缓冲数据块,用于操作系统的数据块的数量

Swap:操作系统每秒从磁盘上交换到内存和从内存交换到磁盘的数据块的数量。s1 和 s0 最好是 0

Io:每秒从设备中读入 b1 的写入到设备 b0 的数据块的数量。反映了磁盘 I/O

System:显示了每秒发生中断的数量(in)和上下文交换(cs)的数量

Cpu:显示用于运行用户代码,系统代码,空闲,等待 I/O 的 CPU 时间

iostat 命令说明
实例命令: iostat -dk 1 5

iostat -d -k -x 5 (查看设备使用率(%util)和响应时间(await))

tps:该设备每秒的传输次数。“一次传输”意思是“一次 I/O 请求”。多个逻辑请求可能会被合并为“一次 I/O 请求”。

iops :硬件出厂的时候,厂家定义的一个每秒最大的 IO 次数,"一次传输"请求的大小是未知的。

kB_read/s:每秒从设备(drive expressed)读取的数据量
KB_wrtn/s:每秒向设备(drive expressed)写入的数据量
kB_read:读取的总数据量
kB_wrtn:写入的总数量数据量;这些单位都为 Kilobytes

SWAP:

MySQL 尽量避免使用 swap。阿里云的服务器中默认 swap 为 0

IO :
  • raid、no lvm、 ext4 或 xfs、ssd、IO 调度策略

  • Swap 调整(不使用 swap 分区)

image

这个参数决定了 Linux 是倾向于使用 swap,还是倾向于释放文件系统 cache。在内存紧张的情况下,数值越低越倾向于释放文件系统 cache。当然,这个参数只能减少使用 swap 的概率,并不能避免 Linux 使用 swap。

修改 MySQL 的配置参数 innodb_flush_method,开启 O_DIRECT 模式。这种情况下,InnoDB 的 buffer pool 会直接绕过文件系统 cache 来访问磁盘,但是redo log 依旧会使用文件系统 cache。值得注意的是,Redo log 是覆写模式的,即使使用了文件系统的 cache,也不会占用太多

IO 调度策略:
image

系统参数调整

Linux 系统内核参数优化:
image
用户限制参数(MySQL 可以不设置以下配置):
image

应用优化

业务应用和数据库应用独立,防火墙:iptables、selinux 等其他无用服务(关闭):
image

数据库优化

SQL 优化方向:

执行计划、索引、SQL 改写

架构优化方向:

高可用架构、高性能架构、分库分表

1. 数据库参数优化

调整:

实例整体(高级优化,扩展)

image
连接层(基础优化)

设置合理的连接客户和连接方式

image
SQL 层(基础优化)
  • query_cache_size: 查询缓存

  • OLAP 类型数据库,需要重点加大此内存缓存

  • 但是一般不会超过 GB

  • 对于经常被修改的数据,缓存会立马失效

  • 我们可以实用内存数据库(redis、memecache),替代他的功能

2.存储引擎层(innodb 基础优化参数)

image

相关文章

  • MySQL查询优化--Explain

    Explain是我们平时使用最多的MySQL优化关键字了,了解它的使用是掌握MySQL优化的基础。当在查询语句前加...

  • PHP面试知识脉络(更新中)

    PHP基础知识Javascript、jQuery、ajax基础知识Linux基础知识MySQL数据库的基础与优化程...

  • MYSQL 基础优化

    语句优化 略 优化工具 检查问题常用工具: 不常用但好用的工具: 系统层面 cpu方面: vmstat、sar t...

  • Mysql基础优化建议

    MySQL优化建议 1.设计数据表的时候要遵守三范式,但是不要严格遵守。可以适度打破范式。 2.一个表字段不适合过...

  • MySQL--基础优化--及索引执行计划-Day6

    MySQL--基础优化--及索引执行计划-Day6 一、上节回顾: 1、作用 优化查询,类似于书中的目录 2、算法...

  • MYSQL分页limit速度太慢优化方法

    MySQL 百万级分页优化(Mysql千万级快速分页)(转) MYSQL分页limit速度太慢优化方法 MYSQL...

  • MySQL相关文章索引(2)

    1.MySQL性能优化 对MySQL语句的性能分析与优化 Mysql 监控 Innodb 阻塞状况 MySQL索引...

  • 11-mysqlSQL分析

    六星教育 - java-mysql优化1909 SQL优化 所谓SQL优化:基于MySQL的优化器查询规则来优化S...

  • MySQL性能调优

    MYSQL查询语句优化 mysql的性能优化包罗甚广: 索引优化,查询优化,查询缓存,服务器设置优化,操作系统和硬...

  • mysql性能优化-慢查询分析、优化索引和配置

    mysql性能优化-慢查询分析、优化索引和配置 分类:Mysql/postgreSQL 目录 一、优化概述 二、查...

网友评论

    本文标题:MYSQL 基础优化

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