1 Востаннє редагувалося vitia444 (03.02.2016 11:07:05)

Тема: MySQL InnoDB ERROR: The table is full при виконанні delete

Табличка містить майже 30 млн рядків, що ще цікаво - здійснювати insert операцію - без проблем, здійснювання видалення конкретного рядка - теж без проблем, а щоб видалити десь 5 млн рядків - отака помилка. Шаринг в інтернеті дав мені оце вирішення, я знайшов той файл (my.cnf) і розкоментував там кілька рядків, призначених для InnoDB, але помилка просто стала вилітати пізніше (в кілька раз). Я так розумію це пов'язано із якимось буфером (можливо, теж якась змінна у цьому файлі), поясніть хто-небудь, що це?

2

Re: MySQL InnoDB ERROR: The table is full при виконанні delete

Якщо доводиться видаляти (або вставляти) багато (більше 200) записів з одної таблиці одним запитом, то скоріше за все Ви щось робите не правильно.
Яке у Вас завдання ?
Якщо потреба виправдана, то можна розбивати запити і/або використовувати тригери.

3

Re: MySQL InnoDB ERROR: The table is full при виконанні delete

Глобально задачі видалення з таблиці не стоїть, я просто вирішив її трохи зменшити бо воркбенч не запускається (вічно сканує схему), а тут таке... Але я ще думаю стосовно якогось джобу (як на MS SQL), який би періодично переносив дані із цієї здорової таблички у так званий архів, бо очікується кілька мільярдів на цю табличку, а не 30 млн...

Подякували: leofun011

4 Востаннє редагувалося koala (03.02.2016 13:28:44)

Re: MySQL InnoDB ERROR: The table is full при виконанні delete

оптимізувати не пробували перед видаленням?

OPTIMIZE TABLE ...

на диску є місце?

5

Re: MySQL InnoDB ERROR: The table is full при виконанні delete

koala написав:

оптимізувати не пробували перед видаленням?

OPTIMIZE TABLE ...

на диску є місце?

На диску було десь 35 Гб вільного місця, сама таблиця займала 7 Гб, я думав що цього достатньо, але 30 млн рядків - це не мало, місце закінчилось, БД лягла і не піднімалась поки я вручну не повидаляв усі bin файли, які там понастворювались