mk-duplicate-key-checker - 检查MYSQL重复索引,并给出删除语句。安装方法可以参考这里。
在oracle里,不允许在同一个列上创建多个索引,如果试图创建就会报错如下:

CREATE INDEX sg1 ON uid_tmp(user_id);
CREATE INDEX sg1 ON uid_tmp(user_id)
*
ERROR AT line 1:
ORA-01408: such column list already indexed

而在mysql上,却是允许的,不知道为何要这样,总之是可以的。

mysql> create index sg1 on t1(id);
Query OK, 0 rows [...]

Mysql管理必备工具Maatkit详解之三(mk-audit)

1 Comment2009年05月18日 作者: 大头刚 

mk-audit - 分析报告mysql状态和操作系统相关环境,给出推荐值。安装方法可以参考这里。
这个工具能把MYSQL的配置文件,SCHEMA的情况,操作系统的情况统一收集起来,形成一个统一的报表,并给出建议。
主要分成两部分:
第一部分是操作系统的情况,CPU,内存,硬盘等.

mk-audit -u sg -p’xxxx’
Server Specs
OS:
 
CPU: Intel(R) Xeon(TM) CPU 3.20GHz Architecture: 64-bit
Speed: MHz: 3192 3192 3192 3192
Cache: 2048 KB
Count: 2
Cores: 4
 
Memory: used 5.58G of 5.83G total (255.02M free)
Buffers: 98.55M
Cached: [...]

mk-archiver - 删除时按行备份,支持备份到异地库。安装方法可以参考这里。
mysql在删除数据的时候,是无法rollback(innodb引擎除外)的,如果你删错了数据,那么你就只能进行恢复了,这显然是很耗成本的操作。
当然你也可以在执行delete的之前,用mysqldump进行备份,或者你在删除之前,先执行load data 或者 insert into as select,至少需要执行2次命令,并且不支持备份到异地库。
那么,下面这个工具可能是你需要的。
利用mk-archiver工具,可以在删除mysql表数据的时候,把需要删除的数据备份。
备份的方式有2种,其一是备份到文件,就像load data一样。其二是备份到另外1张结构相同的表,支持备份到异地库。

mysql> select * from test;
+——+——+
| uid | note |
+——+——+
| 1 | NULL |
| 2 | NULL |
| 3 [...]

Maatkit是一个Perl写的Mysql开源管理工具,根据调查全球大约有70%多的Mysql管理员使用这个工具来管理Mysql,但我发现在国内很少有人知道这个工具,因此打算写一个系列的文章来介绍这个工具,并带上自己的心得和一些体会。
首先安装Maatkt,需要Perl,DBI,DBD::mysql相关模块。