MySQL必备工具第二位: mydumper
能够快速生成数据转储在服务器及备份信息克隆工作中至关重要。遗憾的是,MySQL自身包含的mysqldump组件只支持单线程工作,这就使得它无法迅速解决数据密集型用户所面临的实际问题。不过好消息还是有的,mydumper作为新生代实用工具,能够良好支持多线程工作,这使得它在处理速度方面十倍于传统的mysqldump。
另一款知名的同类工具是MySQL Data Dumper,它的问题是无法单独管理备份集合、差异点或是一套完整备份计划中的其它组成部分。该工具只是单纯将MySQL中的数据以尽可能快的速度进行转储,这在完成限时任务方面倒是具备一定价值,例如趁员工没有在线操作的时段抓紧时间进行备份。另外,如果大家在实际使用中需要异常频繁地执行备份,那么MySQL Data Dumper是比较理想的选择。
从技术角度分析mydumper的话,其特征之一是在处理过程中需要对列表加以锁定,因此如果我们需要在工作时段执行备份工作,那么它恐怕没什么用武之地。但话说回来,专业级数据恢复的费用是每小时数百美元,而且即使数据没能得到恢复,我们收到的也不可能是道歉信而仍然是一纸账单。相比之下,mydumper完全免费,并且在基本备份工作中表现颇佳。
mydumper在克隆整体服务器方面也比较方便。其它工具往往会对硬盘内容进行整体复制,但大家需要的往往只是MySQL中的数据,这个时候mydumper就能迅速准确地完成任务。设置于云平台上的服务器特别适合使用mydumper进行克隆,只需将MySQL中的数据从现有服务器复制到新的实例中即可。
在创建从属服务器、基准确定及模板应用方面采用克隆方案确实行之有效,但克隆真正能够发挥作用的领域无疑还是在开发及测试环节当中。对于动态MySQL环境来说,在将软件推至台面之前迅速对其进行复制并加以测试可说是至关重要的步骤。有了mydumper,大家能够快速创建一套几乎与母体完全相同的服务器来模拟生产服务器,运行于其上的测试结果也将更接近于实际运行结果。
下载地址: https://launchpad.net/mydumper/+download
维护负责人: Domas Mituzas, Andrew Hutchings, Mark Leith
更多信息: http://www.mydumper.org/ | https://launchpad.net/mydumper/
MySQL必备工具第八位: shard-query
还在为针对诸多分区或是数据碎片集合的查询速率低下而烦恼?其实只需使用shard-query,整个处理速度会大大加快。那些基于下列架构的查询指令能够从shard-query工具中得到最大的提升:
●通过FROM串联自子句的子查询
●UNION 及 UNION ALL
●IN
●BETWEEN
复合函数 SUM, COUNT, MIN, and MAX 等也能够使用上述架构。举例来说,下面这条查询指令即可由shard-query并行执行:
SELECT DayOfWeek, COUNT(*) AS c
FROM ontime_fact
JOIN dim_date USING(date_id)
WHERE Year
BETWEEN 2000 AND 2008
GROUP BY DayOfWeek
ORDER BY c DESC; 根据基准测试的结果显示,通过并行处理的方式,该查询指令的响应时间缩短了85%左右,从原先的21秒降低至3秒。
Shard-query并不是一款能够独立运行的工具;它需要诸如Gearman之类的其它程序提供支持,而且设置过程也相对比较复杂。但如果大家的数据分区及查询指令符合上面列出的构造,那么付出一些努力也是值得的,毕竟优化效果非常明显。
下载地址: (svn checkout) http://code.google.com/p/shard-query/source/checkout
维护负责人: Justin Swanhart
更多信息: http://code.google.com/p/shard-query/