Что выбрать Myisam или InnoDB

InstantCMS 2.X
#1 15 декабря 2018 в 23:32
При установке сайта с нуля установщик спрашивает какой выбрать движок базы данных. На выбор предлагается два варианта: myisam и InnoDB. По умолчанию предлагается вариант Myisam с сопроводительным текстом: "Не знаете что выбрать? Выбирайте Myisam". А вот в мануале написано: "Лучше всего выбирать InnoDB". hoho

Ознакомившись немного с вопросом пришел к выводу, что InnoDB считается посовременней, быстрее и надёжнее, но у него проблемы с полнотекстовым поиском и если такой поиск нужен, то следует выбирать именно MyISAM.

Вспомнилось мне, что в настройках полей у нас есть такая важная галочка: "Участвует в полнотекстовом поиске ", вот и подумалось мне, что не тот ли этот случай...
Как тут быть?
#2 16 декабря 2018 в 00:49
Могу ошибаться, но вроде записи типа контента (которые участвуют в поиске) создаются автоматический в MyISAM
Поэтому можете выбрать InnoDB
#3 16 декабря 2018 в 11:19
InnoDB полнотекстовый поиск доступен начиная с версии MySQL 5.6.4
#4 16 декабря 2018 в 13:24

создаются автоматический в MyISAM Поэтому можете выбрать InnoDB

Evanescence
Записи создаются в MyISAM, а установить можно InnoDB… ничего не понял, честно говоря. Как создаваться будут в MyISAM, если я поставлю второй вариант, два типа работать будут, что ли? Всё же спасибо, выбрал InnoDB.


полнотекстовый поиск доступен начиная с версии MySQL 5.6.4

@elv
У меня 5.5.56-MariaDB, получается пролетел я… Как-то можно увеличить версию MySQL, это к хостеру?
#6 16 декабря 2018 в 18:28
Dmitry, прям минусы сплошные у этого InnoDB, получается. А я в основном с противоположным мнением сталкивался. Мол InnoDB посовременнее и хостеры даже принудительно меняют на него. Это даже на данном сайте обсуждалось.

Я в этом абсолютный ноль и понимаю только, что-то важное сокрыто в "поддержке полнотекстового поиска". Получается при InnoDB такая функция не будет работать у полей и если версия ниже MySQL 5.6.4, то лучше выбрать MyISAM, переустановив сайт с нуля, в моём случае.
#7 16 декабря 2018 в 19:56
Интересно, а что будет, если таблицы, откуда преобладает чтение, оставить в MyISAM, а таблицы куда постоянно что-то пишется (рейтинг, онлайность юзеров и т.д.) преобразовать в innodb.
#8 16 декабря 2018 в 22:13

Интересно, а что будет, если таблицы, откуда преобладает чтение, оставить в MyISAM, а таблицы куда постоянно что-то пишется (рейтинг, онлайность юзеров и т.д.) преобразовать в innodb.

Ris
Прийдется базу конфигурить под оба типа таблиц, что потянет расход памяти!
Я все сайты хостинга перевел на InnoDB и базе и серверу сразу стало легче! А полнотекстовый поиск нормально и на innoDB происходит, просто несколько иначе. Так же многое зависит от того, какую базу использовать, у меня MariaDB 10.3.11, на ней InnoDB вообще вольготно себя чувствует и быстрее работает!
#9 16 декабря 2018 в 23:01

А полнотекстовый поиск нормально и на innoDB происходит, просто несколько иначе.

vikont
И как иначе? А может всё работает потому что версия уже выше той, с которой уже innoDB работает.

А как увеличить версию можно?
#10 16 декабря 2018 в 23:07

А как увеличить версию можно?

Yar
Конечно можно.
У кого VPS или выделенный сервер — самостоятельно. У кого шаред хостинг — письмом хостеру.
#11 16 декабря 2018 в 23:10

А может всё работает потому что версия уже выше той, с которой уже innoDB работает.

Yar
Скорее всего! Прямых тестов для сравнения не делал, но проблем стало меньше. Так же еще лучше перейти на РНР7.1 или 7.2 Прирост скорости реальный!
#12 16 декабря 2018 в 23:35
vikont, подозреваю, что я хостера уже базами замучил, поэтому пхп оставлю на потом, тем более какой-то компонент, мной используемый, не готов еще к пхп7.1

Я все сайты хостинга перевел на InnoDB

vikont
Это никаких проблем не вызовет? Я когда хостера спросил про обратный перевод на MyISAM, то он мне ответил следующее:
"Со своей стороны мы можем произвести замену всех записей в Вашей базе данных с InnoDB на MyISAM, но к сожалению, не можем обещать корректность работы после этого.", в связи с чем я сделал вывод, что не всё так просто.
#13 16 декабря 2018 в 23:51

не можем обещать корректность работы после этого.", в связи с чем я сделал вывод, что не всё так просто.

Yar
На вашем хостинге видимо стоит MSQL версии 5,6 или какие то проблемы с работой базы. Перевод таблиц на тип InnoDB стандартная функция и обычно никаких проблем не вызывает, если нет проблем в базе данных.
Вы для начала выполните Восстановление и Оптимизацию для всех таблиц вашей базы. Лучше сейчас привести базу в нормальное состояние! На InnoDB это будет сделать сложнее, так как у нее другой механизм работы и средства phpMyAdmin до сих пор не имеют нужного функционала, а через консоль сервера не каждый умеет или не имеет доступа.
Версию РНР можно сменить в любой момент…
#14 17 декабря 2018 в 00:38

для начала выполните Восстановление и Оптимизацию для всех таблиц

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