作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究。
问题
环境
硬件:DELL 1950, 146G SAS 15K RPMS * 2, 8G Ram
软件:2.6.9-55.ELsmp x86_64, mysql 5.1.x
现象
2个库,其中1个业务库下有20多个表,表文件大小总量不到2G。
另一个为日志库,下400多个表,大致是每天会产生5个表,其中有一个表较大,约400MB,总量约40多GB。
每次备份耗时较长,最严重的一次花了5个多小时才完成。
业务库为当前活动库,日志库则主要用作备份,每天日志归档,过期数据表很少有读写请求。
InnoDB Buffer Pool总共分配了2G,从系统命令 top 结果来看,mysqld 只分配了 1.7G 内存,buffer pool 并没有全部耗尽。
SHOW ENGINE INNODB STATUS 结果中也看到了,buffer pool 确实没用完,还有不少空闲的。
备份时,观察 vmstat 结果,发现 bibo 的量较大,而且两个的值基本相当,备份其中一个表约 500MB,耗时 46 秒。
按照这个耗时计算,全部备份出来也不需要5个多小时,这是为什么呢?
分析
大家先分析下,看是什么原因,稍后给出答案 :)
原因 其实问题原因很简单,但一般人不容易想到。那就是,那些历史的日志表,由于长时间不读取,大部分数据没有在innodb buffer中。所以,每次备份时,大部分数据都要产生大量的物理读,然后再产生物理写,然而该服务器只有2块硬盘,I/O性能有限,所以备份非常慢。
这时候,我们可以有几种解决办法:
1. 删除过期日志表,或者放到线下的归档数据库上
2. 如果innodb buffer还有大量空闲的话,可以不定期执行select * from table,将这部分数据load到buffer中,减少备份时的物理I/O,提高速度
本文出自 “MySQL中文网”博客 http://www.imysql.cn/

转载于:https://blog.51cto.com/imysql/308978

[MySQL FAQ]系列 -- 数据不算大,备份却非常慢相关推荐

  1. mysql备份耗时太长_Mysql数据不算大,备份却非常慢

    环境 硬件:DELL 1950, 146G SAS 15K RPMS * 2, 8G Ram 软件:2.6.9-55.ELsmp x86_64, mysql 5.1.x 现象 2个库,其中1个业务库下 ...

  2. [MySQL FAQ]系列 -- 新年新思想:MySQL也能并发导入数据

    作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究. 对MySQL的用户而言,备受诟病的一个问题就是导入SQL备份文件 ...

  3. mysql 定时同步数据_如何定时备份Mysql数据库数据?

    这是为小白定制的专属<Linux轻松上手>系列.涵盖了linux常用指令.shell脚本等核心内容,浅显易懂,配合实操案例快速上手.目标就是帮助大家轻松上手linux,少走弯路! 上一篇如 ...

  4. MySQL优化:数据量很大,分页查询很慢,有什么优化方案?

    准备工作 一般分页查询 使用子查询优化 使用 id 限定优化 使用临时表优化 关于数据表的id说明 当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明 ...

  5. [MySQL FAQ]系列 -- 如何直接覆盖 MYI MYD 文件

    作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究. 问:数据库是MyISAM的,从备份库中从把a.frm,a.MYD ...

  6. mysql将备份的数据导入_成功将MySQL的大型数据导入导出和备份(转载)

    原来的数据使用的是MySQL4.1,大概有800M左右.使用 mysqldump -u username -p dbname > "filename" 导出的时候很容易死掉, ...

  7. [MySQL FAQ]系列 -- 快速还原MyISAM表索引

    作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究. 假设有个myisam表:tbl,为了备份方便,直接把 frm 和 ...

  8. MySQL在线环境,[MySQL FAQ]系列 — 线上环境到底要不要开启query cache

    Query Cache(查询缓存,以下简称QC)存储SELECT语句及其产生的数据结果,特别适用于:频繁提交同一个语句,并且该表数据变化不是很频繁的场景,例如一些静态页面,或者页面中的某块不经常发生变 ...

  9. [MySQL FAQ]系列 -- mysqldump出错一例:打开文件数太多

    作/译者:叶金荣(Email: ),来源:http://imysql.cn,转载请注明作/译者和出处,并且不能用于商业用途,违者必究. 故障现象: 1:使用mysqldump命令dump出整个数据库: ...

最新文章

  1. Dispatcher与UI线程交互
  2. 一分钟就可以轻松将文字转换成语音,简单方法讲解
  3. 英特尔中国换帅,迎来史上首位女董事长,原总裁杨旭年底退休
  4. 通信网络基础期末复习-第三章-网络的时延分析
  5. MySQL索引对NULL值的处理
  6. Silverlight 游戏开发小技巧:实现街霸4的选人界面
  7. RSA解密Matlab,RSA加密算法--matlab
  8. java异常的捕获和处理
  9. Android对system_server中binder的ioctl调用拦截
  10. Eigen中的map
  11. java.sql.ResultSet
  12. 「 数学模型 」“使用SPSS软件主成分分析”实例
  13. 用python批量发送短信_Python批量发短信
  14. 转载黑苹果10.13N卡驱动方法
  15. SolidWorks频繁闪退,可能是(百度)输入法引起的
  16. android手势第一次设置密码_android实现手势密码
  17. 【Python 字符视频】Python 实现将抖音视频转换成字符视频
  18. 关于@Autowired属性飘红
  19. JAVA游戏 混乱大枪战
  20. Tableau图表:气泡图,文字云,树状图等

热门文章

  1. c++中利用STL实现公司员工分组问题
  2. c++的STL--1概念通述
  3. gcc编译多个源代码文件的过程(引出makefile)
  4. 爆赞!Jetpack-MVVM-高频提问和解答,满满干货指导
  5. CNN/RNN TF1.4
  6. Mapreduce中maptask过程详解
  7. WPF中MVVM模式的 Event 处理
  8. 扫盲丨关于区块链你需要了解的所有概念
  9. java 生成二维码
  10. Nova 组件详解 - 每天5分钟玩转 OpenStack(26)