На официальном форуме Joomla появилась интересное сообщение: пользователь Beat (один из разработчиков компонента CommunityBuilder) провел анализ эффективности наиболее часто выполняемых запросов к базе данных Joomla и предложил небольшую оптимизацию индексов таблиц для повышения производительности Joomla.
По словам автора данная модификация применима как к сайтам на Joomla 1.0.x, так и для сайтов на Joomla 1.5 RC.
Несмотря на то, что данные запросы не затрагивают непосредственно данных, а влияют только на индексы таблиц базы данных, рекомендуется перед применением этой модификации сделать резервную копию таблиц БД вашего сайта.
Итак, Beat рекомендует для повышения производительности сайта на Joomla перестроить индексы на некоторых таблицах в базе данных. Для этого необходимо выполнить следующие запросы:
ALTER TABLE `jos_core_acl_groups_aro_map` ADD INDEX `aro_id` ( `aro_id` ) ; ALTER TABLE `jos_users` ADD INDEX `idxemail` ( `email` ); ALTER TABLE `jos_content` ADD INDEX `idx_created_by` ( `created_by` ) ; ALTER TABLE `jos_users` ADD INDEX `block_id` ( `block` , `id` ); ALTER TABLE `jos_users` ADD INDEX `username` ( `username` ); ALTER TABLE `jos_session` ADD INDEX `userid` ( `userid` ); ALTER TABLE `jos_categories` DROP INDEX `idx_section`; ALTER TABLE `jos_core_acl_aro_sections` DROP INDEX `jos_gacl_value_aro_sections`; ALTER TABLE `jos_core_acl_aro_sections` DROP INDEX `jos_gacl_hidden_aro_sections`; ALTER TABLE `jos_core_log_searches` ADD INDEX ( `hits` ) ; ALTER TABLE `jos_core_log_searches` ADD INDEX ( `search_term` ( 16 ) ) ; ALTER TABLE `jos_stats_agents` ADD INDEX `type_agent` ( `type` , `agent` );
Более подробную техническую информацию о причинах такой модификации можно почитать на официальном форуме в теме MySQL optimizations proposals submission for Joomla 1.5 (indexes optimizations).