mysql 导入性能_MySQL导入导出以及性能测试

最近做了MySQL的相关测试,包括备份数据的导入导出、压力测试等,因为数据量比较大,每次测试等待时间很长,所以自己动手写了相关测试脚本,直接放后台screen运行即可:import.sh、dump.sh,需要读者对screen、mysqldump、tee等命令比较熟悉,screen的话可以参考我写的一篇关于screen的文章:http://521cto.blog.51cto.com/950229/525398,另外两个命令读者就在网上搜罗吧^_^,如有疑问可以联系我(QQ:349871740)。

我的mysqld启动方式如下:

/usr/local/mysql5/bin/mysqld_safe --defaults-file=/usr/local/mysql5/etc/innodb.cnf --datadir=/data1/mysql5/data/ --user=mysql &

以下是mysqldump出来的文件大小:

[root@localhost data1]# du -sh /data2/6_ddb_201204260120

47G     /data2/6_ddb_201204260120

导入数据库之后:

[root@localhost mysql5]# du -sh data/

72G     data/

以下是我的脚本具体内容:

[root@localhost data1]# more import.sh

::::::::::::::

import.sh

::::::::::::::

#!bin/bash

DIR=/data/script/db_back/

DIST=6

DDB=${DIST}_ddb_

MYSQL_BIN=/usr/local/mysql5/bin/

cd ${DIR}

if [ $? -eq 0 ] ; then

echo "`date -d today "+%Y-%m-%d %H:%M:%S"` Import Game Start!" | tee -a import.log

TIME=`date -d today +%Y%m%d%H%M`

#{ /usr/bin/time ${mysql} ddb < /root/data/6_ddb_201204260120; } 2>>import.log

{ /usr/bin/time ${MYSQL_BIN}mysql ddb < /root/data/6_ddb_201204260120; } 2>&1 | tee -a import.log

echo -e "`date -d today "+%Y-%m-%d %H:%M:%S"` Import Game Over!\n" | tee -a import.log

sleep 300

fi

::::::::::::::

dump.sh

::::::::::::::

#!/bin/sh

DIR=/data/script/db_back/

DIST=6

DDB=${DIST}_ddb_

MYSQL_BIN=/usr/local/mysql5/bin/

cd ${DIR}

if [ $? -eq 0 ] ; then

echo "`date -d today "+%Y-%m-%d %H:%M:%S"` Game Start!" | tee -a dump.log

TIME=`date -d today +%Y%m%d%H%M`

#{ /usr/bin/time ${MYSQL_BIN}mysqldump -Q -e -a -q --no-autocommit --single-transaction ddb | bzip2 -2 > ${DIST}_ddb_${TIME}.bz2; } 2>>dump.log

{ /usr/bin/time ${MYSQL_BIN}mysqldump -Q -e -a -q --no-autocommit --single-transaction ddb | bzip2 -2 > ${DIST}_ddb_${TIME}.bz2; } 2>&1 | tee -a dump.log

echo -e "`date -d today "+%Y-%m-%d %H:%M:%S"` Game Over!\n" | tee -a dump.log

sleep 300

rm -f ${DIST}_ddb_${TIME}.bz2

sleep 30

fi

[root@localhost data1]#

然后用下面的命令对导入和导出各测试10次,这两个测试跑完总时间用了5天左右,但是我是在业余时间做的测试,所以前后时间间隔很长,后面还有压力测试,例如:mysqlslap,sql_bench等,随后附上。

[root@localhost data1]# for i in $(seq 10); do sh dump.sh ;done

[root@localhost data1]# for i in $(seq 10); do sh import.sh ;done

脚本中将测试结果输出到文本中,截取部分内容:

[root@localhost db_back]# tail -10 dump.log

2012-05-11 15:24:09 Game Start!

1147.64user 265.25system 45:49.79elapsed 51%CPU (0avgtext+0avgdata 0maxresident)k

0inputs+0outputs (1major+330minor)pagefaults 0swaps

2012-05-11 16:09:59 Game Over!

2012-05-11 16:55:24 Game Start!

1149.02user 266.73system 44:25.40elapsed 53%CPU (0avgtext+0avgdata 0maxresident)k

0inputs+0outputs (4major+314minor)pagefaults 0swaps

2012-05-11 17:39:49 Game Over!

[root@localhost db_back]# tail -10 import.log

2012-05-07 02:29:26 Import Game Start!

1149.62user 67.70system 2:41:43elapsed 12%CPU (0avgtext+0avgdata 0maxresident)k

0inputs+0outputs (7major+1089minor)pagefaults 0swaps

2012-05-07 05:11:09 Import Game Over!

2012-05-07 05:16:09 Import Game Start!

1149.78user 66.98system 2:41:45elapsed 12%CPU (0avgtext+0avgdata 0maxresident)k

0inputs+0outputs (7major+1089minor)pagefaults 0swaps

2012-05-07 07:57:54 Import Game Over!

这次测试模拟线上服务器的真实环境,所以测试还是比较准确的,如果读者有类似环境,可以拿去加以修改应用,希望对读者有所帮助,测试过程中也能学习到很多拓展知识,需要我们去花大量的时间、精力去做,时间很晚了,今后对内容加以补充!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值