MySQL必备工具第九位: mk-archiver
随着列表体积的日益增大,查询指令生效时间也每况愈“长”。响应时间不理想的干扰因素当然很多,但如果我们已经对各个角度实施了优化,那么最后仍然制约性能表现的瓶颈所在就是列表的规模了。将庞大列表中的各行内容进行归档操作能够有效缩短查询指令的响应时间。
除非列表内容并不重要,否则大家千万不能贸然删除其中的内容行。归档也需要技巧,因为首先数据不能缺失、列表也不能过分锁定以免影响访问,还要注意归档操作不能导致MySQL及服务器的超载。我们的目标是让整个归档过程稳定可靠,除了缩短查询响应时间外不产生任何负面效果。mk-archiver 能够帮我们达到愿望。
mk-archiver有两条基本工作要求,第一是归档对象必须能够被识别。举例来说,如果列表中存在日期列,而且一般来说只有几年之内的数据有实际价值,那么在这几年之前的数据行可以进行归档。另外,必须具备一套惟一的索引系统以帮助mk-archiver 工具进行定位,而不必扫描整个列表中的内容行。扫描一套巨型列表在时间及经济方面的成本都相当高昂,因此关键指数及特定的SELECT语句在避免整体扫描方面至关重要。
在实际应用当中,mk-archiver 会自动处理各类技术细节。大家需要做的只是告知该工具哪个列表需要归档、如何识别可归档的内容行以及将这些行归至何处。如果需要的话,也可以将这些行剪切至另一个新列表中,或者是以书面的形式生成一个转储文件,方便日后需要的时候另行导入。一旦熟悉了这款工具的用法,其中的大量细微调节选项能够帮我们实现各种特殊的归档要求。此外,mk-archiver 具备嵌入式端口,因此它可以在未经代码修正的情况下解决诸多复杂的归档需求。
下载地址: http://maatkit.org/get/mk-archiver
维护负责人: Daniel Nichter and Baron Schwartz
更多信息: http://maatkit.org/ | http://code.google.com/p/maatkit/