@Relapse

Почему из базы MySQL самопроизвольно удаляются записи?

Здравствуйте.

У сайта есть база данных MySQL, тип: MyISAM, размер базы: 25.7 ГБ, всего строк: 133 млн.

Из базы самопроизвольно удаляются записи, причем из разных таблиц. Сегодня пришла жалоба от пользователя, что у него обнулился внутренний баланс на моем сайте. Проверил - оказалось, что его аккаунт удалился из users, при том сохранились данные, которые касаются этого пользователя из других таблиц. Ранее были случаи, когда удалялись записи из других баз. Не скажу, что проблема носит массовый характер, но даже 20 удаленных записей из 500 000 имеют значение.

В чем может быть причина и как избавиться от проблемы? Логгирование запросов на удаление сделали, там ничего нет.
  • Вопрос задан
  • 590 просмотров
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
MyISAM

баланс на моем сайте

Сделайте мне это развидеть.

Это безотносительно проблемы. Хранить данные и нетранзакционное хранилище - взаимоисключающие вещи. Используйте единственное транзакционное хранилище в mysql - innodb. И добавьте внешние ключи.

Несколько маловероятно, что это непосредственная проблема, в штатном режиме даже myisam выборочно строки терять не должен так, что это заметил только конкретный пользователь. Более вероятна реакция mysql "аааа, таблица повреждена, я буду говорить только с админом". Впрочем, я давно уже не работал с myisam в продакшене, может и такое поведение тоже характерно.
А вот FK в режиме restrict вполне поможет от странных запросов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы