0
DELETE table2
FROM table2 INNER JOIN table1
ON table2.CITY = table1.CITY
WHERE table1.COUNTRY = 'Russia'
这两个表都有大约50万条记录,每条记录大约10列。每列不大于约100个字符估计删除语句在mysql中应该占多长时间
如果有大约250,000条匹配条件的记录需要多长时间?
DELETE table2
FROM table2 INNER JOIN table1
ON table2.CITY = table1.CITY
WHERE table1.COUNTRY = 'Russia'
这两个表都有大约50万条记录,每条记录大约10列。每列不大于约100个字符估计删除语句在mysql中应该占多长时间
如果有大约250,000条匹配条件的记录需要多长时间?
根据您的索引配置(如果你有很多的指标,它会减慢查询了很多),你可能会更快做:
CREATE TABLE tmp_table2 LIKE table2;
ALTER TABLE tmp_table2 DISABLE KEYS;
INSERT INTO tmp_table2 SELECT t2.* FROM table2 AS t2 JOIN table1 AS t1 ON t1.CITY = t2.CITY WHERE t1.country != 'Russia';
ALTER TABLE tmp_table2 ENABLE KEYS;
DROP TABLE table2;
RENAME TABLE tmp_table2 TO table2;
基本上,它会创建一个新表,告诉它不会更新索引,插入“好”记录,告诉它更新索引,然后重命名它...
注意:不要尝试在事务中包装这个,它不会工作到期到DDL ...
完全取决于您的服务器,硬盘配置,mySQL服务器配置,RAM s peed,硬盘总线类型和速度......你为什么需要知道这一点? – 2010-05-21 19:16:31