Изменение движка таблиц Joomla на InnoDB - PullRequest
0 голосов
/ 24 марта 2012

Я написал приложение на JAVA, которое добавляет статьи на сайт Joomla.
Моя проблема заключается в том, что для вставки статьи требуется пять запросов (добавление статьи в таблицу content, вставка соответствующего узла в таблицу assets,обновление других узлов в таблице assets и установка идентификатора ресурса для вставленной статьи);и из-за этого мое JAVA-приложение работает на удаленной машине, многие проблемы могут привести к сбою любого из этих запросов, и если какой-либо из них завершится неудачей, все assets разрывы таблицы.
Я думал об использовании транзакций и ручной фиксации для решенияэто, но система хранения Joomla (MyISAM) не поддерживает транзакции.поэтому подумал о преобразовании механизма хранения этих двух таблиц в «InnoDB».
Это правильно?Разве это не вызывает проблем для Joomla (например, в соединении с другими таблицами, которые используют MyISAM)?Повлияет ли это на сайт и замедляет ли его работу?
Есть ли другое решение (например, отправка всех 5 запросов на сервер для последовательной работы)?

Спасибо

1 Ответ

1 голос
/ 24 марта 2012

Некоторые мысли:

  1. Я не совсем уверен, но я не думаю, что у Joomla должны быть какие-либо проблемы с InnoDB. При соединении таблиц MyISAM и InnoDB в JOIN MySQL внутренне преобразует InnoDB в MyISAM. Но я не парень из Joomla, и я все еще не уверен в этом

  2. Почему бы не использовать триггеры - триггер AFTER INSERT на content?

  3. Вы также можете написать хранимую процедуру для запуска всех 5 INSERT, но опять-таки не будет поддержки транзакций

  4. Создайте единую таблицу для хранения всех данных из всех 5 запросов INSERT. Конечно, эта таблица носит временный характер. Теперь создайте другую хранимую процедуру, которая затем перенесет все данные из этой промежуточной таблицы в соответствующие таблицы.

Надеюсь, вышесказанное имеет смысл!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...