Что лучше для HLX - MyISAM или InnoDB? И другая оптимизация...

KorDen

Atra esterní ono thelduin!
Сообщения
2,142
Реакции
1,424
Собственно задался таким вопросом...
Где-то я как-то нашел (или мне скинули, давно было...) такой набор запросов, по идее "улучшающий" работу HLXCE:
ALTER TABLE `hlstats_Actions` ENGINE = INNODB;
ALTER TABLE `hlstats_Awards` ENGINE = INNODB;
ALTER TABLE `hlstats_ClanTags` ENGINE = INNODB;
ALTER TABLE `hlstats_Clans` ENGINE = INNODB;
ALTER TABLE `hlstats_Countries` ENGINE = INNODB;
ALTER TABLE `hlstats_Games` ENGINE = INNODB;
ALTER TABLE `hlstats_Games_Defaults` ENGINE = INNODB;
ALTER TABLE `hlstats_Games_Supported` ENGINE = INNODB;
ALTER TABLE `hlstats_Heatmap_Config` ENGINE = INNODB;
ALTER TABLE `hlstats_HostGroups` ENGINE = INNODB;
ALTER TABLE `hlstats_Maps_Counts` ENGINE = INNODB;
ALTER TABLE `hlstats_Mods_Defaults` ENGINE = INNODB;
ALTER TABLE `hlstats_Mods_Supported` ENGINE = INNODB;
ALTER TABLE `hlstats_Options` ENGINE = INNODB;
ALTER TABLE `hlstats_Options_Choices` ENGINE = INNODB;
ALTER TABLE `hlstats_PlayerNames` ENGINE = INNODB;
ALTER TABLE `hlstats_PlayerUniqueIds` ENGINE = INNODB;
ALTER TABLE `hlstats_Players` ENGINE = INNODB;
ALTER TABLE `hlstats_Players_Awards` ENGINE = INNODB;
ALTER TABLE `hlstats_Players_Ribbons` ENGINE = INNODB;
ALTER TABLE `hlstats_Ranks` ENGINE = INNODB;
ALTER TABLE `hlstats_Ribbons` ENGINE = INNODB;
ALTER TABLE `hlstats_Roles` ENGINE = INNODB;
ALTER TABLE `hlstats_Servers` ENGINE = INNODB;
ALTER TABLE `hlstats_Servers_Config` ENGINE = INNODB;
ALTER TABLE `hlstats_Servers_Config_Default` ENGINE = INNODB;
ALTER TABLE `hlstats_Teams` ENGINE = INNODB;
ALTER TABLE `hlstats_Weapons` ENGINE = INNODB;
ALTER TABLE `hlstats_Players` ADD INDEX ( `game` );
ALTER TABLE `hlstats_Players_Awards` ADD INDEX ( `playerid` );
ALTER TABLE `hlstats_Actions` ADD INDEX ( `game` );
Сейчас вот задумался, а все же, что лучше, какие таблицы лучше в каком типе хранить? Почитал много статей на тему "Преобладают только запросы на запись или только на чтение - MyISAM, и то и другое - InnoDB", и так далее, но так и не понял, что же лучше для прилично нагруженного сервера HLstatsX:CE...
Что имеем:
Текущая рабочая конфигурация - одна БД на один DeathMatch-сервер CSS на 64 слота, онлайн довольно-таки приличный, БД весит около 600 мб. SuperLogs не стоит, сохранение подробностей за 28 дней. Плюс есть вторая БД для паблика, но на ней нагрузка довольно маленькая, онлайн не очень большой.
Предполагаемая в дальнейшем конфигурация (сейчас все переделываю постоянно, и поэтому сохранность БД не критична, то есть если лучше будет создать новую БД с заранее определенными типами - создам): 6 серверов CSS, из них вышеуказанные два, плюс еще один паблик, один DM на 64 слота и два DM на 32 и 24 слота. Нагрузка общая приличная получается, в декабре, когда писалась статистика с пяти серверов, БД весила около 1.5 гб.
В принципе предложения по увеличению кешей в оперативной памяти тоже пригодятся, оперативы должно хватить...
Есть и еще один проект (не мой), БД с активными где-то 20ю тысячами игроков, TF2, четыре сервера. Тут уже иногда заметны подвисания, этот сервер на винде...

Итого вопрос, в основном к тем, кто разбирается в разнице типов таблиц и вообще MySQL - какую еще можно оптимизацию БД провести? Может где-то стоит изменить тип таблиц, а где-то произвести какие-то другие действия, которые могут улучшить картину?
Например, советчик phpMyAdmin пишет такое:
"Слишком большое количество запросов на блокировку таблицы, которые не были выполнены немедленно. Для уменьшения ожидания блокировки необходима оптимизация запросов и/или использование таблиц типа InnoDB."
Ну и еще много чего предлагается у него, особенномного советует использовать индексы, но я сам пока практически ничего не понимаю в SQL, и пытаюсь выяснить, что же лучше для HLXCE...
 

Renetus

Участник
Сообщения
19
Реакции
1
Добавлял этот запрос который описан, честно говоря незаметил никакой разницы что сним что без него, в базе 4 сервера
 

bigworld13

Участник
Сообщения
37
Реакции
15
Очень жаль что автору темы не ответили знатоки mysql. Я присоединяюсь к его вопросу. И плюс к тому у меня еще проблема: соурсбанс стоит вместе с игровыми серверами на одной машине. Все казалось бы отлично работает, но когда открываешь страницу Банлист, где список всех банов - ждешь ее генерации 20 сек. При этом процесс mysql подскакивает до 50%, что порой создает лаги на игровых серверах. Спасают только приоритеты в диспетчере. Насколько я понял при этом запросе с базы зачем то считываются все 2000 строк, вместо 30 требуемых, поэтому он так сильно нагружает процессор. Очень хотелось бы найти человека который решит эту проблему, готов поблагодарить монеткой. http://bans.27region.com
 

Alice.bnd

Участник
Сообщения
26
Реакции
4
Присоединяюсь к вопросу. ) С четырех серверов о которых упоминал Денис мы разрослись до двадцати. hlxce уже весит 2.5 Гига и безбожно тормозит даже после оптимизации.
Так-же хочется поднять вопрос про настройку мускула на сервере с четырьмя ядрами и 2Г мозгов, что в принципе похоже уже явно недостаточно под кривую hlxce.
 

NeXxX

Участник
Сообщения
312
Реакции
26
Присоединяюсь к вопросу. ) С четырех серверов о которых упоминал Денис мы разрослись до двадцати. hlxce уже весит 2.5 Гига и безбожно тормозит.
Так-же хочется поднять вопрос про настройку мускула на сервере на четыре ядра и 2Г мозгов, что в принципе похоже уже явно недостаточно под кривую hlxce.

Маркополики вы что ли?
 

Хитрый_Ёжик

Участник
Сообщения
287
Реакции
111
Присоединяюсь к вопросу. ) С четырех серверов о которых упоминал Денис мы разрослись до двадцати. hlxce уже весит 2.5 Гига и безбожно тормозит даже после оптимизации.
Так-же хочется поднять вопрос про настройку мускула на сервере с четырьмя ядрами и 2Г мозгов, что в принципе похоже уже явно недостаточно под кривую hlxce.
Поменяйте MySQL на MariaDB и используйте движок TokuDB. Ну или всегда можете уйти на gameMe, они без проблем импортируют ваш дам статистики к себе, однако потом уже уйти от них будет нельзя :(
 

Alice.bnd

Участник
Сообщения
26
Реакции
4
Поменяйте MySQL на MariaDB и используйте движок TokuDB.
Не вижу смысла менять мускуль на машу. Те-же яйца, только в профиль.
Касательно TokuDB:
==========
При проведении тестов, TokuDB опережает InnoDB при добавлении больших объемов данных более чем в 10 раз (InnoDB 1,555 записей в сек, TokuDB 16,437 записей в сек), но проигрывает по степени нагрузки на CPU при выборке данных.
==========
У нас затык при выборке.

Ну или всегда можете уйти на gameMe, они без проблем импортируют ваш дам статистики к себе, однако потом уже уйти от них будет нельзя :(
Поэтому не буду.

Да и КорДен там уже подшаманил что-то у нас. Стало значительно лучше. Завтра потребую отчет в устной форме (в плане, что хочу понимать как бороться с такими затыками). )))
 
Последнее редактирование:

MFS

Участник
Сообщения
1,533
Реакции
787
Корден, а ты эту Алису живьем видел?
 

MFS

Участник
Сообщения
1,533
Реакции
787
Да как сказать, кому и Серега очкарик невеста.
 
Сверху Снизу