Стоит отделить обновление MySQL v4 / v5 от обновлений таблицы. Это уменьшает потенциальный круг проблем.
Тем не менее, если перезапуск базы данных является редким явлением, потратьте некоторое время на проверку параметров сервера InnoDB перед обновлением v4 / v5, так как многие из них нуждаются в перезапуске базы данных. Рекомендуются два типа: innodb_file_per_table = 1 и innodb_flush_log_at_tx_commit = 1 (ищите их), и вам также следует обратить внимание на innodb_buffer_pool_size, поскольку почти наверняка он будет слишком низким, если никто его не изменил.
MyISAM будет в течение долгого времени. Это очень надежный формат на диске, который обладает некоторыми качествами, полезными для многих ситуаций. В частности, он имеет быстрый SELECT
, который может быть полезен для небольшой таблицы, в которой нет или очень мало обновлений. Тем не менее, очень горячая таблица (много-много SELECT
с) выиграет от перехода на InnoDB, потому что MyISAM не поддерживает одновременное чтение.
MyISAM почти всегда переживает сбой базы данных, при этом требуется всего лишь REPAIR TABLE
. InnoDB не всегда так везет. MyISAM также может быть скопирован из базы данных; даже если вы не заблокируете таблицу заранее, вы, скорее всего, получите файл, который будет просто работать. InnoDB файлы не такие добрые; Вот почему существует innodb_hot_copy.
Недавно мы прошли обновление MySQL v4 / v5, и у нас была только одна проблема с SQL: смешанный режим JOIN
s. Парсер версии 4 был довольно прощающим, когда смешивал неявные объединения таблиц с явными предложениями LEFT JOIN
. Версия 5 не такая уж прощающая. Поэтому мы воспользовались возможностью, чтобы просмотреть приложение и обновить все JOIN
s до явных JOIN
s. Помимо одного или двух пропущенных мест это было очень успешно.
Я бы порекомендовал вам настроить тестовую среду с использованием PHP 4 и MySQL v5. Это позволит вам проверить все это.