当前位置:首页 > MySQL教程 > 正文内容

mysql优化的思绪引见【MySQL教程】,mysql,linux,php

搜教程4年前 (2019-12-01)MySQL教程181
本篇文章给人人带来的内容是关于mysql优化的思绪引见,有肯定的参考价值,有须要的朋侪可以参考一下,愿望对你有所协助。

数据库层面题目处理思绪

平常应急调优的思绪:
针对倏忽的营业处理卡顿,没法举行一般的营业处置惩罚!须要立马处理的场景!

1、show processlist

2、explain select id ,name from stu where name='clsn'; # ALL id name age sex
select id,name from stu where id=2-1 函数 效果集>30;
show index from table;

3、经由过程执行计划推断,索引题目(有无、合不合理)或许语句自身题目

4、show status like '%lock%'; # 查询锁状况
kill SESSION_ID; # 杀掉有题目的session

通例调优思绪:
针对营业周期性的卡顿,例如在天天 10-11 点营业迥殊慢,然则还可以运用,过了这段时刻就好了。

1、检察 slowlog,剖析 slowlog,剖析出查询慢的语句。

2、依据肯定优先级,举行一个一个的排查一切慢语句。

3、剖析 top sql,举行 explain 调试,检察语句执行时刻。

4、调解索引或语句自身。

  1. 体系层面

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。

  1. 体系层面题目处理办法

你以为究竟负载高好,照样低好呢?
在现实的生产中,平常以为 cpu 只要不凌驾 90% 都没什么题目 。

固然不消除下面这些特别情况:
题目一:cpu 负载高,IO 负载低
内存不够

磁盘机能差

SQL 题目 ------>去数据库层,进一步排查 sql 题目

IO 出题目了(磁盘到临界了、raid 设想不好、raid 降级、锁、在单元时刻内 tps 太高)

tps 太高: 大批的小数据 IO、大批的全表扫描

题目二:IO 负载高,cpu 负载低
大批小的 IO 写操纵:

autocommit ,发生大批小 IO

IO/PS 磁盘的一个定值,硬件出厂的时刻,厂家定义的一个每秒最大的 IO 次数。

大批大的 IO 写操纵

SQL 题目的几率比较大

题目三:IO 和 cpu 负载都很高
硬件不够了或 SQL 存在题目

五、基础优化

  1. 优化思绪

定位题目点:
硬件 --> 体系 --> 运用 --> 数据库 --> 架构(高可用、读写星散、分库分表)

处置惩罚方向:
明白优化目的、机能和平安的折衷、有备无患

  1. 硬件优化

主机方面:
依据数据库范例,主机 CPU 挑选、内存容量挑选、磁盘挑选

均衡内存和磁盘资本

随机的 I/O 和递次的 I/O

主机 RAID 卡的 BBU(Battery Backup Unit)封闭

cpu 的挑选:
cpu 的两个关键因素:核数、主频

依据差别的营业范例举行挑选:

cpu 密集型:盘算比较多,OLTP 主频很高的 cpu、核数还要多

IO 密集型:查询比较,OLAP 核数要多,主频不肯定高的

内存的挑选:
OLAP 范例数据库,须要更多内存,和数据猎取量级有关。

OLTP 范例数据平常内存是 cpu 中心数目的 2 倍到 4 倍,没有最好实践。

存储方面:
依据存储数据品种的差别,挑选差别的存储装备

设置合理的 RAID 级别(raid 5、raid 10、热备盘)

对与操纵体系来说,不须要太特别的挑选,最好做好冗余(raid1)(ssd、sas 、sata)

raid 卡:主机 raid 卡挑选:
完成操纵体系磁盘的冗余(raid1)

均衡内存和磁盘资本

随机的 I/O 和递次的 I/O

主机 RAID 卡的 BBU(Battery Backup Unit)要封闭

收集装备方面:
运用流量支撑更高的收集装备(交流机、路由器、网线、网卡、HBA 卡)

注重:以上这些计划应该在初始设想体系时就应该斟酌好。

  1. 效劳器硬件优化

1、物理状况灯:

2、自带治理装备:长途控制卡(FENCE 装备:ipmi ilo idarc),开关机、硬件监控。

3、第三方的监控软件、装备(snmp、agent)对物理设备举行监控

4、存储装备:自带的监控平台。EMC2(hp 收买了), 日立(hds),IBM 低端 OEM hds,高端存储是本身手艺,华为存储

  1. 体系优化

Cpu:
基础不须要调解,在硬件挑选方面下功夫即可。

内存:
基础不须要调解,在硬件挑选方面下功夫即可。

SWAP:
MySQL 只管防止运用 swap。阿里云的效劳器中默许 swap 为 0

IO :
raid、no lvm、 ext4 或 xfs、ssd、IO 调理战略

Swap 调解(不运用 swap 分区)

这个参数决议了 Linux 是倾向于运用 swap,照样倾向于开释文件体系 cache。在内存慌张的情况下,数值越低越倾向于开释文件体系 cache。固然,这个参数只能削减运用 swap 的几率,并不能防止 Linux 运用 swap。

修正 MySQL 的设置参数 innodb_flush_method,开启 O_DIRECT 形式。这类情况下,InnoDB 的 buffer pool 会直接绕过文件体系 cache 来访问磁盘,然则redo log 依旧会运用文件体系 cache。值得注重的是,Redo log 是覆写形式的,纵然运用了文件体系的 cache,也不会占用太多

IO 调理战略:

  1. 体系参数调解

Linux 体系内核参数优化:

用户限定参数(MySQL 可以不设置以下设置):

  1. 运用优化

营业运用和数据库运用自力,防火墙:iptables、selinux 等其他无用效劳(封闭):

装置图形界面的效劳器不要启动图形界面 runlevel 3,别的,思索未来我们的营业是不是真的须要 MySQL,照样运用其他品种的数据库。用数据库的最高境地就是不必数据库。

六、数据库优化
SQL 优化方向:
执行计划、索引、SQL 改写

架构优化方向:
高可用架构、高机能架构、分库分表

  1. 数据库参数优化

调解:
实例团体(高等优化,扩大)

衔接层(基础优化)
设置合理的衔接客户和衔接体式格局

本篇文章到这里就已悉数完毕了,更多其他精彩内容可以关注ki4网的MySQL教程视频栏目!

以上就是mysql优化的思绪引见的细致内容,更多请关注ki4网别的相干文章!

扫描二维码推送至手机访问。

版权声明:本文由搜教程网发布,如需转载请注明出处。

本文链接:https://www.sojiaocheng.cn/15832.html

标签: mysqllinuxphp
分享给朋友:

“mysql优化的思绪引见【MySQL教程】,mysql,linux,php” 的相关文章

Mysql之运算符与函数的总结【MySQL教程】,Mysql,运算符,总结

本文给人人汇总引见了mysql中的经常运用的运算符以及经常运用函数的用法及示例,异常的周全,有须要的小伙伴能够参考下 我们先来看个示例 use test; create table `employee`( emp_no int unsigned, emp_name varc...

MYSQL完成防备增加购物车反复的代码实例【MySQL教程】,MYSQL,购物车,添加

在向mysql中插进去数据的时刻最须要注意的就是防备反复发增加数据,下面这篇文章主要给人人引见了关于MYSQL怎样完成增加购物车的时刻防备反复增加的相干材料,文中经由历程示例代码引见的异常细致,须要的朋侪能够参考自创,下面来一同看看吧。 媒介 近来由于事情的缘由,在做APP购物车下单付出这一...

MySQL高可用解决方案MMM详解【MySQL教程】,MySQL,解决方案,详解

MySQL高可用解决方案MMM详解【MySQL教程】,MySQL,解决方案,详解

MySQL自身没有供应replication failover的解决计划,经由过程MMM计划能完成效劳器的毛病转移,从而完成mysql的高可用。MMM不仅能供应浮动IP的功用,假如当前的主效劳器挂掉后,会将你后端的从效劳器自动转向新的主效劳器举行同步复制,不必手工变动同步设置 一、MMM简介:...

MySQL两大存储引擎InnoDB与MyISAM的区分【MySQL教程】,InnoDB,MySQL,引擎

1.InnoDB存储引擎 MySQL5.5中InnoDB成为默许的存储引擎。InnoDB是事件型存储引擎,被设想用来处置惩罚大批的短时间事件。它的机能和自动崩溃恢复特征,使得它在非事件场景中也很盛行。 所以可以这么说:“除非须要用到某些InnoDB不具备的特征,而且没有其他方法可以替换,...

MySQL慢查询日记相干的设置和运用【MySQL教程】,MySQL,配置,相关

MySQL慢查询日记相干的设置和运用【MySQL教程】,MySQL,配置,相关

MySQL慢查询日记供应了凌驾指定时刻阈值的查询信息,为机能优化供应了重要的参考根据,是一个异常有用的功用,MySQL慢查询日记的开启和设置异常简朴,能够指定纪录的文件(或许表),凌驾的时刻阈值等就能够纪录到慢sql了,真话讲,相比较sqlserver的trace或许扩大事宜(虽然此两者的作用并不...

Mysql 协定嗅探是什么【MySQL教程】,Mysql,是什么,协议

需求 监听经由历程网卡的一切mysql流量,举行剖析,可在不影响现有营业情况下,举行入侵检测(IDS)或数据集成 协定要点 早先发明 用mysql-front接见数据库和mysql 的客户端接见时数据包花样差别,纠结良久,不明白,mysql-front源码看了眼,delphi,不懂,弃 紧缩...