Перейти к публикации

Вопрос про механизм хранения MySQL для DLE


Рекомендованные сообщения

В актуальной версии MySQL механизм хранения по умолчанию теперь InnoDB.

Исходные данные

Dle 16.1

Частое добавление новых публикаций, а также ещё более частое их обновление (около 20% от всех публ на сайте обновлются в течении суток)

Всего публикаций около 20к

 

Вопрос: какой движок выбрать?

Или ставить MyISAM для всех таблиц, а InnoDB для некоторых? Если так то для каких оптимально InnoDB ставить?

Т.к в MySQL можно использовать разные механизмы хранения для каждой таблицы.

 

Буду очень благодарен если ответит @celsoft на этот вопрос.

Изменено пользователем Uralbox
Ссылка на сообщение
Поделиться на других сайтах

Вы не выбираете какой движок MySQL вам использовать. Его вам выбирает DLE, а он как раз таки ставит использование именно InnoDB, поэтому зачем менять на MyISAM непонятно в данном случае.

20 часов назад, Uralbox сказал:

Или ставить MyISAM для всех таблиц, а InnoDB для некоторых? Если так то для каких оптимально InnoDB ставить?

Достаточно понимать в чем разница между MyISAM и InnoDB и ответ станет очевиден. При обновлении данных в таблице MyISAM блокирует всю таблицу пока данные обновляются, а при использовании InnoDB блокируется только строка, которая обновляется. Пока данные заблокированы, чтение недоступно. Поэтому при частом обновлении InnoDB работает банально быстрее. Поэтому и выбор очевиден в пользу именно InnoDB.

DLE вам ставит InnoDB, поэтому ничего менять самостоятельно не нужно, и движок менять вручную у таблиц тоже не нужно.

Ссылка на сообщение
Поделиться на других сайтах

@celsoft Понял, спасибо за ответ. Тогда вопрос, при обновлении DLE со старой на свежую версию (16.1) старая бд MyISAM не обвноляется на InnoDB. Что делать в таком случае?

Ссылка на сообщение
Поделиться на других сайтах

Менять нужно вручную движок в данном случае. Через phpMyAdmin или сделать бекап БД, в файле бекапа сменить движок у таблиц и восстановить бекап БД.

Ссылка на сообщение
Поделиться на других сайтах

Тип таблиц должен быть принципиальнно установлен по умолчанию InnoDB? Или это не важно?
И какую кодировку лучше использовать, utf8mb4_general_ci или utf8mb4_0900_ai_ci или даже utf8mb4_unicode_ci?

Ссылка на сообщение
Поделиться на других сайтах
11 минут назад, Uralbox сказал:

Тип таблиц должен быть принципиальнно установлен по умолчанию InnoDB? Или это не важно?

Никакого принципа здесь нет. Это важно, и я написал выше почему. Это влияет на скорость. Скорость это важно, но не значит принципиально. Поэтому вам решать ))

12 минут назад, Uralbox сказал:

И какую кодировку лучше использовать, utf8mb4_general_ci или utf8mb4_0900_ai_ci или даже utf8mb4_unicode_ci?

Ту которую ставит DLE, не трогайте это никогда. Он может использовать для разных таблиц разную.

Ссылка на сообщение
Поделиться на других сайтах
Цитата

Никакого принципа здесь нет. Это важно, и я написал выше почему

Вы меня не так поняли, у меня MyISAM - тип таблиц данного MySQL сервера устанавливаемый по умолчанию. Но сами таблицы в InnoDB (установленны DLE) - это ок, или нужно поменять на InnoDB. Вот для наглядности скрин

Цитата

Ту которую ставит DLE, не трогайте это никогда. Он может использовать для разных таблиц разную.

А разве это не зависит от настройки мускула? Там есть настройка в пункте collation-server

Изменено пользователем Uralbox
Ссылка на сообщение
Поделиться на других сайтах
26 минут назад, Uralbox сказал:

Вы меня не так поняли, у меня MyISAM - тип таблиц данного MySQL сервера устанавливаемый по умолчанию. Но сами таблицы в InnoDB (установленны DLE) - это ок, или нужно поменять на InnoDB. Вот для наглядности скрин

Не нужно ничего менять. Значение по умолчанию когда создается таблица и при этом не указан движок. Больше никогда не используется. DLE не использует значения по умолчанию, он ставит свои. Поэтому не важно что у вас там стоит, это роли не играет.. Ничего делать не нужно.

28 минут назад, Uralbox сказал:

А разве это не зависит от настройки мускула? Там есть настройка в пункте collation-server

Нет не зависит. DLE всегда сам прописывает что ему нужно. Ничего по умолчанию не важно. Настройки сервер использует когда движки не указывают что то свое, тогда он берет значения по умолчанию или из настроек и использует их. DLE оперирует всегда своими значениями когда создает таблицы или поля.

Ссылка на сообщение
Поделиться на других сайтах
Цитата

Ту которую ставит DLE, не трогайте это никогда. Он может использовать для разных таблиц разную.

Да, но перед установкой движка нужно создать бд и там выбрать кодировку скрин

вот и вопрос что utf8mb4_general_ci | utf8mb4_0900_ai_ci | utf8mb4_unicode_ci

Ссылка на сообщение
Поделиться на других сайтах
54 минуты назад, Uralbox сказал:

Да, но перед установкой движка нужно создать бд и там выбрать кодировку скрин

Без разницы что вы там напишите. Это значение по умолчанию для MySQL. DLE не использует значения по умолчанию, он пропишет свое когда будет создавать таблицы

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

×
×
  • Создать...