我有一個巨大的MYSQL表,我使用的hostgator共享服務器有4GB內存。我試圖用phpmyadmin簡單地執行以下查詢:MYSQL查詢消耗太多內存
DELETE FROM Table1_main where date = '2009-12-31'
但是,由於內存不足,此查詢正好超時。如何在不購買更高性能的服務器的情況下執行此查詢?
我有一個巨大的MYSQL表,我使用的hostgator共享服務器有4GB內存。我試圖用phpmyadmin簡單地執行以下查詢:MYSQL查詢消耗太多內存
DELETE FROM Table1_main where date = '2009-12-31'
但是,由於內存不足,此查詢正好超時。如何在不購買更高性能的服務器的情況下執行此查詢?
是否有該列的索引?這通常是加速這樣的簡單查詢的方法。
下面是如何在該列上創建索引: CREATE INDEX ON table1_main (date);
注:這是一個黑客,如果你只是想要把它做
我敢打賭,有一個更好的方式來做到這一點。
DELETE FROM Table1_main where date = '2009-12-31' limit 1000000
嘗試增加數字直到它中斷。
如果您的MySQL大於或等於版本5.1,那麼您可以使用分區。
另一種解決方案是使用一個循環一次刪除N個記錄,直到總數被刪除。
請看一看見解上的兩種方法:
http://mysql.rjweb.org/doc.php/deletebig
希望幫助,
對不起,我是很新的這一點。我將如何在列上創建索引。 – 2014-09-03 02:52:28
我想在'date'列創建一個索引 – 2014-09-03 02:54:55
我添加了命令來創建我的回覆索引。 – 2014-09-03 12:26:20