Июн 062015
 

Потихоньку буду собирать мелочи к оптимизации:

Выбор между MyISAM и InnoDB.

Народ в “интернетах” бьётся, но я пока не пришёл к какому-то мнению. Кроме, разве что, таблицы session. Она должна быть только InnoDB. Или memory 🙂

Сами “джумловцы”, похоже, однозначны в этом вопросе:  “From our experience, yes – MyISAM is much much faster than InnoDB. However, nearly all database administrators disagree, and claim that if this is the case, then there is a problem in the settings of the my.cnf file (the MySQL configuration file).

We have switched all of the high traffic sites that we’re managing to MyISAM because InnoDB was performing very poorly.” – http://forum.joomla.org/viewtopic.php?f=709&t=868727

Конвертация таблиц схемы
Пример конвертации всех таблиц схемы.

for n in `mysql <Имя_базы> --password='Пароль_root' -B -N -e "show tables;"`; do
  \ mysql <Имя_базы> --password='Пароль_root' -B -N -e "ALTER TABLE $n ENGINE=myisam;";done

Мне больше нравится вариант с выгрузкой дампа. mysqldump, конвертация, удаление старой базы, создание новой, заливка.

 sed -i 's/MyISAM/INNODB/g' file.sql 

Дополнение01.09.2015 – поскольку переехал на более-менее приличный VPS, то сконвертировал базу полностью в InnoDB

Кеширование

Поскольку мне нужно динамическое формирование страниц, то мой выбор:

  • Плагин System – Page Cache – выключен
  • В глобальной конфигурации – включено прогрессивное кеширование.

Получается, что кешируются данные от “строительных блоков” (модулей), но пользователям выдаются динамически.

Дополнение10.09.2015 – чтобы обойти ошибку SLogin со сбросом кеша, я добавил в robots.txt строку:

Disallow: /component/slogin/

Но, не всё так просто. В связи с тупостью одного из ботов, конкретно AhrefsBot/5.0; +http://ahrefs.com/robot/, также потребовалось модифицировать .htaccess:

RewriteCond %{REMOTE_ADDR} 188.165.15.5
RewriteCond %{REQUEST_URI} "^/component/slogin/"
RewriteRule "." http://в-пешее-эротическое-путешествие [R=301,L]

Ссылки