2014-09-03 2 views
0

У меня есть гигантская таблица MYSQL, а общий сервер хост-сервера, который я использую, имеет 4 ГБ оперативной памяти. Я пытаюсь выполнить следующий запрос, используя простой PHPMyAdmin:Запрос MYSQL потребляет слишком много памяти

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

Однако этот запрос только раз, потому что есть недостаточный RAM. Как я могу выполнить этот запрос, не покупая сервер с более высокой производительностью?

ответ

0

Есть ли индекс этого столбца? Обычно это способ ускорить простой запрос.

Вот как создать индекс по этому столбцу: CREATE INDEX ON table1_main (date);

+0

К сожалению, я новичок в этом. Как создать индекс в столбце. –

+0

Я пытаюсь создать индекс только для столбца 'date' –

+0

Я добавил команду для создания индекса для моего ответа. –

0

ПРИМЕЧАНИЕ: Это хак, если вы просто хотите, чтобы сделать это

Я держал пари, что есть лучший способ сделать это.

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

попытайтесь увеличить число, пока оно не сломается.

0

Если у вас есть MySQL больше или равно версии 5.1, вы можете использовать разделы.

Другим решением будет использование цикла для удаления N записей за раз, пока общее количество не будет удалено.

Пожалуйста, обратите внимание на идеи на обоих подходах по адресу:

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

Надежда, что помогает,

Смежные вопросы