InnoDB не поддерживается webhost. Что теперь? - PullRequest
3 голосов
/ 16 февраля 2010

Я разрабатывал небольшое веб-приложение WAMP на своем ноутбуке, где у меня запущен экземпляр mySQL, и я выбрал InnoDB для своего механизма БД. После нескольких недель разработки я хотел сделать его общедоступным и обнаружил, что сервер базы данных, предоставленный моим веб-хостом, не поддерживает InnoDB, только MyISAM.

Сценарий создания и заполнения, сгенерированный из схемы innoDB на моем ноутбуке, при выполнении с действующей базой данных может создать отдельные таблицы TABLES, но затем сталкивается с проблемами при создании VIEW. Не поддерживаются ли представления в MyISAM? Я знаю, что иностранные ключи нет. Именно поэтому я сделал выбор в пользу InnoDB ... Каковы мои шансы заставить мой дизайн схемы innoDB работать с myISAM?

Есть ли простой способ преобразования всей схемы из одного механизма хранения в другой? Стоит ли искать другой веб-хостинг, который предоставляет базу данных mysql, которая поддерживает innoDB?

Ответы [ 3 ]

6 голосов
/ 16 февраля 2010

Ваши варианты:

  1. Спросите своего провайдера веб-хостинга, могут ли они включить InnoDB на своих серверах (иногда они сделают это за вас или перенесут вашу учетную запись на сервер, который поддерживает InnoDB).
  2. Получите нового веб-хостинга с поддержкой InnoDB.
  3. Позаботьтесь о зависимостях внешнего ключа в PHP (например, вы можете использовать Zend_Db и Zend_Db_Table для работы с базой данных, эти классы могут автоматически позаботиться о зависимостях внешнего ключа, если вы их правильно настроили).
  4. Преобразуйте ваше приложение в таблицы MyISAM.

Лично я считаю номер 4 худшим решением. В настоящее время существует множество провайдеров веб-хостинга, которые поддерживают InnoDB, поэтому было бы напрасно тратить ваше время на перекодировку большей части приложения для работы с MyISAM. Это, конечно, зависит от того, насколько большим и сложным является приложение. Если он относительно маленький, это может быть не так уж и плохо.

Я бы, наверное, искал нового хостинг-провайдера.

2 голосов
/ 16 апреля 2010

Да, но InnoDB имеет ряд других функций, таких как транзакции и блокировка строк (а не блокировка таблиц).

0 голосов
/ 16 февраля 2010

это не касается InnoDB или MyISAM: представления поддерживаются для обоих типов таблиц.я бы подумал, что это либо проблема с версией ( представления [...] доступны в MySQL Server 5.0 ), либо о таблицах грантов .

будет полезно, если вы отправите точные сообщения об ошибках, которые вы получаете.

...