我有一个增长到 3GB 的数据库,它有 3 个 MyISAM 表。我有 4GB 内存。在没有任何性能缺陷的情况下备份此数据库的最佳(快速)方法是什么。
或者 mysqldump 可以正常工作吗?
编辑 我不是在寻找包含大量 SQL 语句的非常大的文件。现在,我有更多选择吗?就像原始数据导出或 mysqlhotcopy 一样,我正在寻找一种更快的方法,因为备份 MyISAM 会获取表锁定?
mysqldump 的限制是什么,什么时候应该避免?
在 MySQL 中是否可以预先知道查询执行时间?我的意思是执行查询需要多长时间。
通常,了解执行任何查询需要多长时间是值得的。
目前,手头的问题是将 CHAR 转换为 BIT(1.2GB 表大小,MyISAM,索引不在我想更改的列上,3GB RAM)
我正在尝试删除所有重复项,但仅保留单个记录(较短的 ID)。以下查询会删除重复项,但需要进行大量迭代才能删除所有副本并保留原始副本。
DELETE FROM emailTable WHERE id IN (
SELECT * FROM (
SELECT id FROM emailTable GROUP BY email HAVING ( COUNT(email) > 1 )
) AS q
)
它的MySQL。
DDL
CREATE TABLE `emailTable` (
`id` mediumint(9) NOT NULL auto_increment,
`email` varchar(200) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=298872 DEFAULT CHARSET=latin1