2014-09-03 83 views
0

我有一個巨大的MYSQL表,我使用的hostgator共享服務器有4GB內存。我試圖用phpmyadmin簡單地執行以下查詢:MYSQL查詢消耗太多內存

DELETE FROM Table1_main where date = '2009-12-31' 

但是,由於內存不足,此查詢正好超時。如何在不購買更高性能的服務器的情況下執行此查詢?

回答

0

是否有該列的索引?這通常是加速這樣的簡單查詢的方法。

下面是如何在該列上創建索引: CREATE INDEX ON table1_main (date);

+0

對不起,我是很新的這一點。我將如何在列上創建索引。 – 2014-09-03 02:52:28

+0

我想在'date'列創建一個索引 – 2014-09-03 02:54:55

+0

我添加了命令來創建我的回覆索引。 – 2014-09-03 12:26:20

0

注:這是一個黑客,如果你只是想要把它做

我敢打賭,有一個更好的方式來做到這一點。

DELETE FROM Table1_main where date = '2009-12-31' limit 1000000 

嘗試增加數字直到它中斷。

0

如果您的MySQL大於或等於版本5.1,那麼您可以使用分區。

另一種解決方案是使用一個循環一次刪除N個記錄,直到總數被刪除。

請看一看見解上的兩種方法:

http://mysql.rjweb.org/doc.php/deletebig

希望幫助,