三度网教程:是一个免费提供流行视频软件教程、在线学习分享的学习平台!

Mysql存储写入速度快慢是如何形成的?

时间:2023-4-19作者:未知来源:三度网教程人气:


SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出“做什么”的命令,“怎么做”是不用使用者考虑的。SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。
一、存储结构分析

MySQL存储结构图:
Mysql存储写入速度快慢是怎么形成的?


解析:

1、读操作:内存读-->cache缓存读-->磁盘物理读

读取到的数据会按上述顺序往回送。

2、写操作:内存数据直接写入cache缓存(非常快)-->写入disk

由上可知,MySQL之所以读写速度快,cache在其中起到了关键作用。

1、Cache缓存特点:

1、速度快

2、掉电数据丢失

3、容量有限

2、保护数据安全(防止意外掉电的数据丢失)应对措施:

在存储中,增加BBU(电池备份单元,就是电池),在掉电后,可以把缓存中的数据写到磁盘中,保证数据不会丢失。

如果没有提供BBU或者BBU坏了,内存数据就不会写入cache缓存中,就会直接写入disk中;相较于写入内存,写入磁盘的速度就大打折扣(万倍之差)。与此同时,因为慢下来的“写”占了绝大部分“读”的带宽。所以BBU问题是读写性能差的一很大的影响因素。

3、cache缓存容量有限

(4G、8G、16G、32G),系统为了保持cache有用,会周期性的将cache缓存的数据写入磁盘中,避免cache被占满。

二、存储写入速度慢分析

数据库-->写入速度慢-->系统hang住
Q:如何判断写入速度慢?

A:

1、怀疑BBU问题

监控BBU的bug,解决:重启BBU

2、cache被占满(类同于BBU坏了的情况)

1、海量的写入数据占满cache缓存,判断:

shell> iostat -x

mysql> show global status like 'handler_write';

2、cache写入disk的速度慢了(排水速度远小于注水速度)

硬盘I/O异常,负载过高:数据库海量的物理读(异常SQL),判断:

mysql> show status like 'Innodb_buffer_pool_reads';

3、存储性能差问题

1、存储设备差,更新设备

2、灾备同步风险,“再好的工程师,敌不过蓝翔的挖掘机、农民工的锄头……”

三、关于BBU

英文简称:BBU

英文全称:Battery Backup Unit

中文全称:电池备份单元,是电池

1、作用:

在掉电后,把缓存中的数据写到硬盘中,保证数据不会丢失;

是为了意外掉电刷脏数据的一种保护措施;

能够在系统外部供电失效的情况下,提供后备电源支持,以保证存储阵列中业务数据的安全性。

2、许多存储设备都会配备BBU

BBU在电源供应出现问题的时候,为RAID控制器缓存提供电源。当电源断电时,BBU电力可以使控制器内缓存中的数据可以保存一定时间(根据BBU的型号而决定)。用户只需要在BBU电力耗尽(电池有限)之前恢复正常供电,缓存中的数据即可被完整的写回RAID中,避免断电导致数据丢失。

和服务器电池有点不一样,服务器中,在配置RAID卡的时候可以配一个电池,在系统掉电后,能维持内存中的数据不丢失,但时间有限,大约12个小时左右,假如是12小时,如果在12内没有恢复,内存中的数据就会丢失;

3、超级电容

服务器还有一种保护方式,叫超级电容,也是和RAID卡配套的,他能在服务器掉电后把缓存中的数据写入到电容中,而且会永久保存,类似写入硬盘,实际上是写入电容,你就理解成写入U盘把。他比电池好,即使服务器在12个小时后没有恢复电源,也不会造成数据丢失。

以上就是Mysql存储写入速度快慢是怎么形成的?的详细内容,更多请关注php中文网其它相关文章!


学习教程快速掌握从入门到精通的SQL知识。

关键词:  Mysql存储写入速度快慢是怎样形成的?





Copyright © 2012-2018 三度网教程(http://www.3du8.cn) .All Rights Reserved 网站地图 友情链接

免责声明:本站资源均来自互联网收集 如有侵犯到您利益的地方请及时联系管理删除,敬请见谅!

QQ:1006262270   邮箱:kfyvi376850063@126.com   手机版