Вопрос по движку базы данных

InstantCMS 2.X
#1 30 января 2022 в 21:14

Друзь, подскажите. При установке движка был выбран тип таблиц InnoDB. Собственно все таблицы имеют этот формат, за исключением таблиц содержащих сам контент (cms_con_news, cms_con_article и т.д.) — они имеют формат MyISAM.

Хочется знать, почему эти таблицы в формате MyISAM, а не InnoDB как остальные? Для чего так сделано и не лучше ли будет привести их к одному виду?

#2 30 января 2022 в 22:01

Раз все молчат, выскажу свое непрофессиональное предположение, что дело в полнотекстовом поиск которое в InnoDB гораздо сложнее организовать.

#3 30 января 2022 в 22:08

Хочется знать, почему эти таблицы в формате MyISAM, а не InnoDB как остальные?

Kerncraft1

Из-за полнотекстового индекса, который не поддерживается в старых версиях mysql и mariadb под innodb.

В mariadb выше 10.5 поддерживается FULLTEXT индекс в таблицах innodb.

не лучше ли будет привести их к одному виду?

Kerncraft1

Может и лучше.

Но все индексы в таблицах типов контента придется переделывать.

#4 30 января 2022 в 22:12

 SonatRis, спасибо за разъяснения.

У меня на сервере в данный момент mariaDB 10.4, но есть возможность переключиться на 10.5.

При конвертации таблиц, нужно будет просто заново создать аналогичные индексы как на MyISAM?

Даст ли конвертация рост производительности? В таблице порядка 20К строк, с большим кол-вом полей.

#5 30 января 2022 в 22:14

Исторически сложилось, что InnoDB очень долго не поддерживал полнотекстовый поиск. MyISAM поддерживал. После разделения MySQL на MariaDB и собственно MySQL, MariaDB практически сразу сделали поддержку полнотекстового поиска, с версии MariaDB 10.0.5. В MySQL такая поддержка появилась с версии 5.6.4. Если у вас версии выше обозначенных, можете преобразовать таблицы в InnoDB. В движке пока что оставлено для совместимости.

Как-то так 🙂

#6 30 января 2022 в 22:44

 Fuze, а что на счёт скорости? Имеет смысл так «оптимизировать»? 

#7 30 января 2022 в 23:34

а что на счёт скорости? Имеет смысл так «оптимизировать»? 

Panda58dev

Скорости чего? Опции настройки myisam и innodb разные в mysql.ini. Как настраивать mysql/mariadb, какие у них ключевые опции для производительности, гугл расскажет. У этого сайта все таблицы в innodb.

#8 31 января 2022 в 01:03

 Kerncraft1

В конечном счете все это сводится к танцам с бубном.

На одной базе данных одна конфигурация лучше работает, на другой базе — другая.

На одном сайте одни индексы ускоряют выборку из базы данных, на другом — другие индексы.

Нет универсальных настроек, универсальной конфигурации и универсальных индексов.

Таков linux way...

#9 31 января 2022 в 10:02

 Fuze, ясно, гуглить надо :)

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.