本文主要探讨 mysqldump 的几种主要工作方式,并且比较一下和 mk-parralel-dump 的一些差异,为备份方式的选择提供更多的帮助。
首先来看下 mysqldump 的几个主要参数的实际工作方式。
参考文章:Making MySQL more usable: InnoDB save/restore buffer pool patch。
Jeremy Cole同学写了个补丁,用于将InnoDB 缓冲池(buffer pool)里的列表在关闭mysqld时保存到本地文件中,重启启动时再加载到内存中去。该补丁目前只适用于MySQL 5.1版本。作者计划该补丁至少应具备以下几点要求:
原文出自:The new cool MySQL patch has landed! Check your queries performance!,本文做只部分翻译。
MySQL微秒慢查询(microtime slow query)补丁包具有以下特色:
每个慢查询结果中都记录了是哪个连接线程引起的,如下:
# Thread_id: 571
注:本系列文章主要探讨 MySQL 内存利用以及执行计划相关的一些知识点,从而为 MySQL 优化打下更好的基础。
OS: AS4U6, 2.6.9-67.0.15.ELsmp, 16G Ram, MD3000阵列, xfs文件系统 MySQL 5.1.26 - percona(innodb plugin, innodb stat, user stat, msl, show patch, acc-pslist 补丁)
引言:在以前,我总是习惯用 INT UNSIGNED 来存储一个转换成Unix时间戳的时间值,认为这样做从索引,比较等角度来讲,都会比较高效。现在我们来对比下 TIMESTAMP 和 INT UNSIGNED 以及 DATETIME 这3种类型到底谁更好。
创建一个测试表:
mysql> CREATE TABLE `t` ( `d1` int(10) unsigned NOT NULL default '0', `d2` timestamp NOT NULL default CURRENT_TIMESTAMP, `d3` datetime NOT NULL, KEY `d2` (`d2`), KEY `d1` (`d1`), KEY `d3` (`d3`) );
然后创建一个存储过程填充数据:
起因:在innodb表上做count(*)统计实在是太慢了,因此想办法看能不能再快点。
现象:先来看几个测试案例,如下
一、 sbtest 表上的测试
show create table sbtest\G *************************** 1. row *************************** Table: sbtest Create Table: CREATE TABLE `sbtest` ( `aid` bigint(20) unsigned NOT NULL auto_increment, `id` int(10) unsigned NOT NULL default '0', `k` int(10) unsigned NOT NULL default '0', `c` char(120) NOT NULL default '', `pad` char(60) NOT NULL default '', PRIMARY KEY (`aid`), KEY `k` (`k`), KEY `id` (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1000001 DEFAULT CHARSET=latin1
应CU老大邀请,今天下午在北京交通大学和网友们一起再次温习了这个主题,由于最近时间比较紧迫,只好采用前不久的一次技术交流文档了,大家多海涵 :)
文档见附件,必须要用本站帐号登录才能下载,呵呵。
硬件: Intel(R) Xeon(R) CPU 5130 @ 2.00GHz * 2, 4G RAM, 564G SAS
软件: Red Hat Enterprise Linux AS release 4 (Nahant Update 4) 2.6.9 42.ELsmp (32-bit), MySQL 5.0.27-standard-log
总记录数: 1016126, 每行平均大小 46822
方法: SELECT * INTO OUTFILE '/backup/yejr.txt' FROM yejr; 耗时: 3252.15 秒
方法: mysqldump -t -n --default-character-set=latin1 test yejr > /backup/yejr.sql 耗时: 2124 sec
结论: 用 mysqludmp 导出数据是相对较快的方法.
方法: mysql test < /backup/yejr.txt 耗时: 3317.62 sec
最近评论
1 天 15 小时 前
1 天 16 小时 前
2 天 12 小时 前
2 天 12 小时 前
3 天 22 小时 前
1 周 1 天 前
1 周 1 天 前