Как правильно разрулить FULLTEXT с типом таблиц InnoDB

InstantCMS 2.X

Возникают проблемы с поиском, с открыванием фото и др.

#16 21 января 2019 в 20:47

Вы читали выше? Повесил и фотки уже не открываются.

vikont
Проверьте сейчас. И енджайн таблицы гляньте.
#17 21 января 2019 в 23:27
Из достигнутого:
1. Для нормальной работы Фотоальбома и Поиска требуется в обеих таблицах cms_ photos и cms_con_albums создать одинаковые индексы

Потому, что так потребовала функция MATCH, почему потребовала ХЗ! Видимо ответить сможет только Fuze/
2. На поддомене с установленным IVideo2 все работает кроме открывания фото на весь экран. При клике по стрелочкам появляется ошибка в консоли
Uncaught (in promise) TypeError: Failed to execute 'requestFullscreen' on 'Element': parameter 1 ('options') is not an object.
at Object.request (all.js?152787819:458)
at Object.toggle (all.js?152787819:458)
at HTMLDivElement.<anonymous> (photos.js?152787819:87)
at HTMLDocument.dispatch (jquery.js?152787819:3)
at HTMLDocument.r.handle (jquery.js?152787819:3)
где all.js — это ява скрипт iVideo2, находящийся по пути /templates/ваш_шаблонl/js/video/all.js

Причем тут iVideo2 не скажу, тем более, что на основном домене так же стоит iVideo2, но никаких ошибок нет.
#18 23 января 2019 в 13:42
Еще поэкспериментировав, пришел к выводу, что первого FULLTEXT индекса title с полем title, создаваемого по умолчанию, для InnoDB достаточно во многих случаях. Но как говорится, что позволено MySam недопустимо в InnoDB: там где идет выборка по 2-м полям (включаем полнотекстовый поиск в контенте или потребовало стороннее дополнение) в таблицах с InnoDB надо создавать второй FULLTEXT индекс content с полями title и content (автоматически не создается)

Теоретически, чтобы избежать каких либо неожиданностей лучше сразу во всех главных таблицах с InnoDB создать оба FULLTEXT индекса или один из отсутствующих

Видимо из-за этих нюансов с InnoDB (требует точного соответствия полей в индексе и запросе) Fuze принял Соломоново решение: все таблицы перевести в InnoDB, а главные таблицы оставить в MySam. Будет не так быстро работать как в с чистым InnoDB, но без неожиданных глюков! Что для большинства пользователей Инстанта критично!
#19 21 апреля 2020 в 21:59
Да, вот она как раз и вылезла эта проблема. Я писал, вы как раз последнее сообщение там отправили /forum/thread28897-1.html#284287

Так чем полечить эту проблему на сайте? Ошибка так и болтается у меня.
#20 21 апреля 2020 в 22:11
Перечитал, напишу решение, для нас чайников, нужно сделать запрос в базу: ALTER TABLE cms_photos ENGINE=MyISAM;
Т.е. перевести обратно — и заработало :)
#21 21 апреля 2020 в 22:50
В MariaDB начиная с 10.2 возможен фуллтекст индекс для Innodb таблиц.
#22 26 мая 2020 в 13:49

Кроме этого, когда все таблицы типа innoDB сама база работает быстрее и более корректно, как в мужском коллективе, а смешанная база… это как коллективе появилась хотя бы одна женщина… И управляется тяжелее и работает не предсказуемо.

vikont
Доброго времени суток. Также обратил внимание что часть таблиц в новой установке Инстанта 2.13.1 остаются в MyISAM — это сделано специально для совместимости со старыми базами? Есть смысл конвертировать все в innoDB?
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.