Uralbox 4 Опубликовано: 4 августа 2023 Рассказать Опубликовано: 4 августа 2023 (изменено) В актуальной версии MySQL механизм хранения по умолчанию теперь InnoDB. Исходные данные Dle 16.1 Частое добавление новых публикаций, а также ещё более частое их обновление (около 20% от всех публ на сайте обновлются в течении суток) Всего публикаций около 20к Вопрос: какой движок выбрать? Или ставить MyISAM для всех таблиц, а InnoDB для некоторых? Если так то для каких оптимально InnoDB ставить? Т.к в MySQL можно использовать разные механизмы хранения для каждой таблицы. Буду очень благодарен если ответит @celsoft на этот вопрос. Изменено 4 августа 2023 пользователем Uralbox Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 5 августа 2023 Рассказать Опубликовано: 5 августа 2023 Вы не выбираете какой движок MySQL вам использовать. Его вам выбирает DLE, а он как раз таки ставит использование именно InnoDB, поэтому зачем менять на MyISAM непонятно в данном случае. 20 часов назад, Uralbox сказал: Или ставить MyISAM для всех таблиц, а InnoDB для некоторых? Если так то для каких оптимально InnoDB ставить? Достаточно понимать в чем разница между MyISAM и InnoDB и ответ станет очевиден. При обновлении данных в таблице MyISAM блокирует всю таблицу пока данные обновляются, а при использовании InnoDB блокируется только строка, которая обновляется. Пока данные заблокированы, чтение недоступно. Поэтому при частом обновлении InnoDB работает банально быстрее. Поэтому и выбор очевиден в пользу именно InnoDB. DLE вам ставит InnoDB, поэтому ничего менять самостоятельно не нужно, и движок менять вручную у таблиц тоже не нужно. Цитата Ссылка на сообщение Поделиться на других сайтах
Uralbox 4 Опубликовано: 5 августа 2023 Рассказать Опубликовано: 5 августа 2023 Автор @celsoft Понял, спасибо за ответ. Тогда вопрос, при обновлении DLE со старой на свежую версию (16.1) старая бд MyISAM не обвноляется на InnoDB. Что делать в таком случае? Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 5 августа 2023 Рассказать Опубликовано: 5 августа 2023 Менять нужно вручную движок в данном случае. Через phpMyAdmin или сделать бекап БД, в файле бекапа сменить движок у таблиц и восстановить бекап БД. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Uralbox 4 Опубликовано: 5 августа 2023 Рассказать Опубликовано: 5 августа 2023 Автор Тип таблиц должен быть принципиальнно установлен по умолчанию InnoDB? Или это не важно? И какую кодировку лучше использовать, utf8mb4_general_ci или utf8mb4_0900_ai_ci или даже utf8mb4_unicode_ci? Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 5 августа 2023 Рассказать Опубликовано: 5 августа 2023 11 минут назад, Uralbox сказал: Тип таблиц должен быть принципиальнно установлен по умолчанию InnoDB? Или это не важно? Никакого принципа здесь нет. Это важно, и я написал выше почему. Это влияет на скорость. Скорость это важно, но не значит принципиально. Поэтому вам решать )) 12 минут назад, Uralbox сказал: И какую кодировку лучше использовать, utf8mb4_general_ci или utf8mb4_0900_ai_ci или даже utf8mb4_unicode_ci? Ту которую ставит DLE, не трогайте это никогда. Он может использовать для разных таблиц разную. Цитата Ссылка на сообщение Поделиться на других сайтах
Uralbox 4 Опубликовано: 5 августа 2023 Рассказать Опубликовано: 5 августа 2023 (изменено) Автор Цитата Никакого принципа здесь нет. Это важно, и я написал выше почему Вы меня не так поняли, у меня MyISAM - тип таблиц данного MySQL сервера устанавливаемый по умолчанию. Но сами таблицы в InnoDB (установленны DLE) - это ок, или нужно поменять на InnoDB. Вот для наглядности скрин Цитата Ту которую ставит DLE, не трогайте это никогда. Он может использовать для разных таблиц разную. А разве это не зависит от настройки мускула? Там есть настройка в пункте collation-server Изменено 5 августа 2023 пользователем Uralbox Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 5 августа 2023 Рассказать Опубликовано: 5 августа 2023 26 минут назад, Uralbox сказал: Вы меня не так поняли, у меня MyISAM - тип таблиц данного MySQL сервера устанавливаемый по умолчанию. Но сами таблицы в InnoDB (установленны DLE) - это ок, или нужно поменять на InnoDB. Вот для наглядности скрин Не нужно ничего менять. Значение по умолчанию когда создается таблица и при этом не указан движок. Больше никогда не используется. DLE не использует значения по умолчанию, он ставит свои. Поэтому не важно что у вас там стоит, это роли не играет.. Ничего делать не нужно. 28 минут назад, Uralbox сказал: А разве это не зависит от настройки мускула? Там есть настройка в пункте collation-server Нет не зависит. DLE всегда сам прописывает что ему нужно. Ничего по умолчанию не важно. Настройки сервер использует когда движки не указывают что то свое, тогда он берет значения по умолчанию или из настроек и использует их. DLE оперирует всегда своими значениями когда создает таблицы или поля. 1 Цитата Ссылка на сообщение Поделиться на других сайтах
Uralbox 4 Опубликовано: 11 августа 2023 Рассказать Опубликовано: 11 августа 2023 Автор Цитата Ту которую ставит DLE, не трогайте это никогда. Он может использовать для разных таблиц разную. Да, но перед установкой движка нужно создать бд и там выбрать кодировку скрин вот и вопрос что utf8mb4_general_ci | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci Цитата Ссылка на сообщение Поделиться на других сайтах
celsoft 6 076 Опубликовано: 11 августа 2023 Рассказать Опубликовано: 11 августа 2023 54 минуты назад, Uralbox сказал: Да, но перед установкой движка нужно создать бд и там выбрать кодировку скрин Без разницы что вы там напишите. Это значение по умолчанию для MySQL. DLE не использует значения по умолчанию, он пропишет свое когда будет создавать таблицы Цитата Ссылка на сообщение Поделиться на других сайтах
Uralbox 4 Опубликовано: 11 августа 2023 Рассказать Опубликовано: 11 августа 2023 Автор @celsoft спасибо за разьяснение. Цитата Ссылка на сообщение Поделиться на других сайтах
Рекомендованные сообщения
Присоединяйтесь к обсуждению
Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.