клиентская база

Пост о создании небольшой клиентской базы на бывшей работе.
Картинки кликабельны (далее...)

Не знаю почему, но по умолчанию настройки 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

(далее...)

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

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

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

(далее...)

Статья для новичков. В MySQL есть встроенное кэширование запросов. Подробнее можно почитать на Хабре. Тут я скажу о главном плюсе и главном минусе такого кэширования и приведу пример своего сервака. (далее...)

MySQL Joins

Хорошая статья про MySQL Joins.
Вообще, в своей практике приходится использовать лишь INNER JOIN и LEFT JOIN, но для общего развития стоит почитать.

Сейчас многие движки позволяют выводить похожие записи к конкретному посту.
Самый простой путь для связи — это использование тегов. На том же Хабре сделано именно так.
В wordpress для этого есть плагин Simple Tags. Именно его я использую в своем блоге.

Есть другой подход. Использование полнотекстового индекса индекса MySQL. Для wordpress есть усовершенствованный плагин Related Posts. На большом объеме текста (от 2000 записей в блоге) этот плагин дает лучшие результаты по сравнению с тегами.

поросенок Петр обои

Небольшой пост о том, на чем я работаю. (далее...)

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

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

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

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

Лекция про кэширование, репликацию и шардинг. Кстати этот чувак является одним из авторов книги по разгону MySQL