Оказывается картинки на ваших сайтах весят больше, чем положено. Происходит это по причине не оптимальных алгоритмов сжатия с помощью различных программ. Кстати, фотошоп File->Save for web довольно хорошо оптимизирует изображение. А вот ACDSee и уж тем более php-библиотеки типа GD дают далеко не оптимальный результат. (далее...)

У Гугла есть полезный сервис Google Webmasters Tools, в котором можно посмотреть скорость загрузки вашего сайта. Выглядит это так (кликабельно)


(далее...)

Не знаю почему, но по умолчанию настройки MySQL рассчитаны на десктопы 90-х годов. Например, 8Mb памяти под индексы InnoDB. Помните, как Билл Гейтс заявил, что «640 Кб памяти должно хватать каждому». Дефолтные настройки MySQL из этой серии.

Для начала моя выжимка из конфига (4G RAM, AMD Athlon 64 X2 Dual 5600+)

# ТОЛЬКО UTF! ТОЛЬКО ХАРДКОР!
collation_server=utf8_general_ci
character_set_server=utf8
default-character-set = utf8

# по умолчанию пускай будет InnoDB
default-storage-engine = InnoDB

key_buffer_size = 512M
innodb_buffer_pool_size = 512M
innodb_additional_mem_pool_size = 16M
innodb_flush_method = O_DIRECT
innodb_flush_log_at_trx_commit = 2
innodb_thread_concurrency = 8

join_buffer_size = 8M
sort_buffer_size = 8M
read_rnd_buffer_size = 8M
tmp_table_size = 64M
max_heap_table_size = 32M
table_cache = 256

log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 1

query_cache_type       = 2
query_cache_limit        = 1M
query_cache_size        = 32M

(далее...)

Как известно, PHP — интерпретируемый язык, т.е. каждый раз при обращении к скрипту, этот скрипт компилируется. Если у вас 1 скрипт, то ничего страшного нет, так как время компиляции не большое. Но в современных CMS и фрэймворках при отображении страницы используется 10-300 отдельных php-файлов (проще говоря, инклуды). Чем больше инклудов и чем они тяжелее, тем дольше выполняется процесс компиляции. (далее...)

Статья для новичков. В MySQL есть встроенное средство для отслеживания медленных запросов.

В конфиге нужно просписать

log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 1

(далее...)

Есть 2 хороших книжки по оптимизации сайтов.
Это конечно не свежак, но и не старье 90-х годов, тем более подобных книг не было впринципе.
Книга «Реактивные веб-сайты»
Книга «Разгони свой сайт»

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

Книги повествуют о клиентской оптимизации, т.е. советов по оптимизации MySQL вы там не найдете, но есть довольно много информации про настройку nginx и apache.

Уже давно Яндекс и Гугл предоставляют доступ к популярным JavaScript-библиотекам. Буду рассматривать Яндекс, так как в рунете его CDN работает быстрее. (далее...)

Как посмотреть медленные запросы в MySQL

На конкретном примере из своей практики расскажу про полезную фичу SHOW PROCESSLIST (далее...)

В MySQL есть одна полезная команда optimize table, которая как не сложно догадаться оптимизирует таблицу, а если конкретно, то дефрагментирует таблицу (по аналогии с дефрагментацией диска). Зачем это нужно? (далее...)

Несколько слов о клиентской оптимизации. Не создавайте десятки маленьких файлов css и js. Это плохо сказывается на загрузке страницы. На каждый файл создается отдельное http-соединение и при множестве малых файлов суммарно вы проигрываете. Например, сайт Siemens.com
(далее...)

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