Перейти к содержанию
СофтФорум - всё о компьютерах и не только

Проблема с MySQL


Рекомендуемые сообщения

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

Есть у меня сайт, работает уже несколько лет, и соответственно БД уже большая.

Случилась такая проблема:

Есть таблица, назовем её `table1`

у неё есть данные:

--------------

| id | a | b |...

| 1 | 1 | 9 |

| 2 | 2 | 7 |

| 3 | 2 | 6 |

| 4 | 3 | 2 |

| 5 | 2 | 1 |

............

в реальной таблице 350 000 строк (в принципе это не много) и 3 индекса

сегодня обнаружил что при запросе:

UPDATE `table1` SET `b`='1' WHERE `a`=2

MySQL ведет себя некорректно, т.е. обновляет только первую попавшуюся строку и все, а например в приведенном мною примере он должен обновить сразу 3 строки.

Мне коллеги подсказали что такое бывает из-за индексов, порекомендовали - если есть индексы в таблице кроме PRIMARY, чтобы я их удалил и потом их же заново создал.

Я так и сделал и у меня все заработало как и прежде, но это меня ужаснуло! Как так? Никакой защиты?

Я спать спокойно не смогу если буду знать что у меня таблица в любой момент "захочет по прикалываться" и перестанет нормально выполнять запросы.

Подскажите, почему такое происходит? Как защитится от этого?

Изменено пользователем bmmshayan
Ссылка на комментарий
Поделиться на другие сайты

Можно запустить крона чтоб переодически проверял и изправлял таблиц. Если у вас MyISAM читайте здесь:

http://dev.mysql.com/doc/refman/5.1/en/myisam-maintenance-schedule.html

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...