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