【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞?
问题背景描述:
在 MySQL 中履行 SQL 语句,比如 insert,贼慢,明明可能也就只是一行数据的插入,数据量很小,然则消费的时光却很多,为什么?
一、存储构造分析
MySQL 存储构造图:
解析:
1、读操作:内存读 -->cache 缓存读 --> 磁盘物理读
攫取到的数据会按上述次序往回送。
2、写操作:内存数据直接写入 cache 缓存 (异常快)--> 写入 disk
由上可知,MySQL 之所以读写速度快,cache 在个中起到了关键感化。
①、Cache 缓存特点:
- 速度快
- 掉落电数据损掉
- 容量有限
②、保护数据安然 (防止不测掉落电的数据损掉) 应对办法:
二、存储写入速度慢分析
办事器还有一种保护方法,叫超等电容,也是和 RAID 卡配套的,他能在办事器掉落电后把缓存中的数据写入到电容中,并且会永远保存,类似写入硬盘,实际上噬烫蛛电容,你就懂得成写入 U 盘把。他比电池好,即使办事器在 12 个小时后没有恢复电源,也不会造成数据损掉。
在存储中,增长 BBU(电池备份单位,就是电池),在掉落电后,可以把缓存中的数据写稻磁逄中,包管数据不会损掉。
在掉落电后,把缓存中的数据写到硬盘中,包管数据不会损掉;
如不雅没有供给 BBU 或者 BBU 坏了,内存数据就不会写入 cache 缓存中,就会直接写入 disk 中;相较于写入内存,写入磁盘的速度就大年夜打扣头 (万倍之差)。与此同时,因为慢下来的 “写” 占了绝大年夜部分 “读” 的带宽。所以 BBU 问题是读写机能差的一很大年夜的影响身分。
③、cache 缓存容量有限
(4G、8G、16G、32G),体系为了保持 cache 有效,会周期性的将 cache 缓存的数据写入磁盘中,避免 cache 被占满。
①、存储设备差,更新设备
数据库 --> 写入速度慢 --> 体系 hang 住
Q:若何断定写入速度慢?
1、困惑 BBU 问题
监控 BBU 的 bug,解决:重启 BBU
①、海量的写入数据占满 cache 缓存,断定:
shell> iostat -x
A:
mysql> show global status like 'handler_write';
②、cache 写入 disk 的速度慢了 (排水速度远小于灌水速度)
硬盘 I/O 异常,负载过高:数据库海量的物理读 (异常 SQL),断定:
mysql> show status like 'Innodb_buffer_pool_reads';
3、存储机能差问题
②、灾备同步风险,“再好的工程师,敌不过蓝翔的发掘机、农平易近工的锄头……”
三、关于 BBU
英文简称:BBU
英文全称:Battery Backup Unit
中文全称:电池备份单位,是电池
1、感化:
是为了不测掉落电刷脏数据的一种保护办法;
可以或许在体系外部供电掉效的情况下,供给后备电源支撑,以包管存储阵列中营业数据的安然性。
2、cache 被占满 (类同于 BBU 坏了的情况)
2、很多存储设备都邑配备 BBU
BBU 在电源供给出现问题的时刻,为 RAID 控制器缓存供给电源。当电源断电时,BBU 电力可以使控制器内缓存中的数据可以保存一准时光(根据 BBU 典范号而决定)。用户只须要在 BBU 电力耗尽 (电池有限) 之前恢复正常供电,缓存中的数据即可被完全的写回 RAID 中, 避免断电导致数据损掉。
和办事器电池有点不一样,办事器中,在设备 RAID 卡的时刻可以配一个电池,在体系掉落电后,能保持内存中的数据不损掉,但时光有限,大年夜约 12 个小时阁下,假如是 12 小时,如不雅在 12 内没有恢复,内存中的数据就会损掉;
3、超等电容
【编辑推荐】
- 2017年大年夜数据年关盘点:开源对象、MySQL和Python是最大年夜赢家!
- MySQL vs PostgreSQL: 5个你最存眷的非技巧维度的差别
- MySQL数据库主大年夜同步延迟分析及解决筹划
- MySQL - 常见的三种存储引擎
- MySQL数据库对象的2个优化技能:场景分析、3步应用详解!
推荐阅读
【限时免费】岁尾最强一次云计算大年夜会,看传统、社区、互联网企业若何碰撞? 最新消息,蚂蚁金服旗下付出宝宣布2017年全平易近账单。数据显示,2017年,付出宝平台上移动付出笔数占比为82>>>详细阅读
地址:http://www.17bianji.com/lsqh/40188.html
1/2 1