簡體   English   中英

增加MySql刪除查詢的執行時間

[英]Increase execution time for MySql delete query

我需要按某個值刪除表中的重復行並僅保留1。我使用此查詢

DELETE n1 FROM cities_extended n1, cities_extended n2 WHERE n1.city_id > n2.city_id AND n1.city = n2.city

但是我的表大約有65000行,執行時間太長,我不知道如何加快速度。

確保where子句中的所有字段都已建立索引。 如果其中任何一個未索引,則運行此查詢將為它們建立索引。

ALTER TABLE cities_extended ADD INDEX `city` (`city`)

如果未對此進行索引,則肯定會加快查詢速度。

您也可以嘗試使用臨時表。

drop table if exists `temp_for_duplicates`
CREATE TABLE `temp_for_duplicates` AS select * from `cities_extended` where 1 group by [field with duplicates]

truncate table `cities_extended`

INSERT INTO `cities_extended` SELECT * FROM `temp_for_duplicates`

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM