1. Главная
  2. Форумы
  3. Техподдержка Drupal
  4. Установка и настройка

Как сменить MyISAM на InnoDB?

Главные вкладки

Комментарии

Аватар пользователя yaguar yaguar 18 ноября 2014 в 15:18

А может вообще на SQLite перейти? Вот только на Drupal 7 не очень то хочется переходить, так как под него нет некоторых модулей, например, капчи в поворачивающимися картинками. Да и долгое это занятие.
Достали эти постоянные падения MySQL.

Аватар пользователя yaguar yaguar 18 ноября 2014 в 16:27

Практика показывает обратное.
Один полупустой сайт на MySQL (MyISAM) лежит раз в месяц, в то время как у сайта на SQLite с базой на гектар такой падучей не замечал.
А если ещё через PHPMyAdmin дампы лить, то вообще ужас - он для этого не приспособлен. Поэтому приходится исключительно под рутом из командной строки - никакого комфорта. SQLite этих проблем лишена.

Аватар пользователя yaguar yaguar 18 ноября 2014 в 17:12

Уменьшил время хранения логов до суток. А то создавались на много гектар и вешали MySQL. А таблица MyISAM лишена транзакций (каменный век) и соответственно портилась при зависании. Посмотрим.

А как правильно сконвертировать в InnoDB? Будет достаточно просто в блокноте в дампе заменить и залить под рутом через командную строку?

Аватар пользователя chei1ahJoh8K chei1ahJoh8K 18 мая 2020 в 12:12

мне помог этот скрипт для друпал 7 от Harald Leithner . в phpmyadmin выбираешь базу данных и выполняешь скрипт.

DROP PROCEDURE IF EXISTS convertToInnodb;
DELIMITER //
CREATE PROCEDURE convertToInnodb()
BEGIN
mainloop: LOOP
SELECT TABLE_NAME INTO @convertTable FROM information_schema.TABLES
WHERE `TABLE_SCHEMA` LIKE DATABASE()
AND `ENGINE` LIKE 'MyISAM' ORDER BY TABLE_NAME LIMIT 1;
IF @convertTable IS NULL THEN
LEAVE mainloop;
END IF;
SET @sqltext := CONCAT('ALTER TABLE `', DATABASE(), '`.`', @convertTable, '` ENGINE = INNODB');
PREPARE convertTables FROM @sqltext;
EXECUTE convertTables;
DEALLOCATE PREPARE convertTables;
SET @convertTable = NULL;
END LOOP mainloop;

END//
DELIMITER ;

CALL convertToInnodb();
DROP PROCEDURE IF EXISTS convertToInnodb;

Логотип drupal.ru

Содержимое сайта публикуется на условиях CreativeCommons Attribution-ShareAlike 3.0 или более поздней версии. Программные коды в тексте статей — на условиях GNU GPL v2 или более поздней версии.

Документация по совместной работе с репозиторием drupal.ru – https://docs.drupal.ru/code

Drupal – торговая марка Дриса Бёйтарта

12+

AltStyle によって変換されたページ (->オリジナル) /