This shows you the differences between two versions of the page.
ru:mysql_tunning [2014/01/29 18:19] 127.0.0.1 external edit |
ru:mysql_tunning [2014/02/18 12:49] (current) admin [Mysql Table Engine : all in InnoDB] |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== Mysql Tunning ====== | ||
+ | |||
+ | Если вы используете только трейд - эта статья не имеет особого значения, | ||
+ | |||
+ | В большинстве своем данная статья повторяет то что знает любой админ и написано множество раз в сотнях тысяч статей. Тут будет отмечено скорее в отношении конкретно SmartCJ. | ||
+ | |||
+ | ===== Настройки Mysql - индексы ===== | ||
+ | |||
+ | |||
+ | Вводные: | ||
+ | |||
+ | Вводная 2: базе есть таблицы, | ||
+ | Тк тумб и данных к ней много (не редкость базы по 500-600к тумб) то и данных получается довольно много (бывает и по гигу). | ||
+ | Существует много типов хранения данных, | ||
+ | |||
+ | В чем разница применительно к этой статье: | ||
+ | |||
+ | Основное, | ||
+ | |||
+ | Если же мы используем InnoDB то, как уже было сказано выше, у него нет отдельного индексного файла, а он встроен в датафайл. Выглядит это так условно: | ||
+ | |||
+ | К тому же у InnoDB есть понятие транзакций - это значит, | ||
+ | |||
+ | И еще одно актуальное преимущество InnoDB | ||
+ | |||
+ | Исходя из того что: | ||
+ | * неизвестно на какую версию Mysql | ||
+ | * с каким настройками | ||
+ | * с какой по размеру рабочей базой | ||
+ | |||
+ | будет поставлен скрипт , дефолтные таблицы - MyISAM, поскольку дефолтные настройки innodb очень маленькие. | ||
+ | |||
+ | Однако, | ||
+ | |||
+ | Одновные ньансы InnoDB: | ||
+ | * innodb_buffer_pool_size - туда должен влезать весь датафайл (таблицы в InnoDB), те если он у вас 500 метров и их 5 штук то тут должно быть 2.5 ГИГА (конкретно эта цифтра - это размер всех активных rot_galleries + rot_gallery_data* + rot_gallery_stats таблиц ). Обратите внмиание что данные слейва rot_gallery_statsX храняться в базе мастера и соответственно конвертить эту таблицу надо там, а не на слейве. | ||
+ | * конвертировать в innodb иметт смысл толкьо эти таблицы, | ||
+ | * innodb_additional_mem_pool_size - 64M | ||
+ | * innodb_log_file_size - это даталог записей в базу, 64M | ||
+ | * innodb_flush_log_at_trx_commit - поскольку innodb держит в памяти датафайл, | ||
+ | |||
+ | |||
+ | И для MyISAM и для InnoDB: | ||
+ | * table_cache - когда MySQL начинаtn работать с таблицей, | ||
+ | * max_heap_table_size = tmp_table_size | ||
+ | * query_cache_size - смысл опции в следующем: | ||
+ | |||
+ | |||
+ | ===== Общие наблюдения ===== | ||
+ | |||
+ | * Имеет смысл использовать скрипты, | ||
+ | * если у вас выделенный серв для mysql - не имеет смысла брать его многоядерным, | ||
+ | * убедитесь что на серваке, | ||
+ | |||
+ | |||
+ | ===== Mysql Table Engine : all in InnoDB ===== | ||
+ | |||
+ | Несомтря на то, что написано выше конвертировать толкьо 3 таблицы, | ||
+ | Если остальные таблицы, | ||
+ | |||
+ | Таким образом для экономии имеет смысл конвертировать только таблицы | ||
+ | |||