Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте уважаемые пользователи форума.
Прошу у вас помощи по оптимизации mysql MyISAM
Есть онлайн игра, само ядро работает на java (онлайн в игре достигает до 1500 человек)
Использует базу MySql
Управление базой происходит через Navicat for MySQL
в базе 126 таблиц все они работают на MyISAM
Характеристика оборудования:
Процессор Inte(R) Xeon(R) E5410 2.33GHz 2.33GHz (2 ядра)
Память (Ram) 24Гб
Настройка MyISAM в my.ini
#*** MyISAM Specific options
# The maximum size of the temporary file MySQL is allowed to use while
# recreating the index (during REPAIR, ALTER TABLE or LOAD DATA INFILE.
# If the file-size would be bigger than this, the index will be created
# through the key cache (which is slower).
myisam_max_sort_file_size=4000G
# If the temporary file used for fast index creation would be bigger
# than using the key cache by the amount specified here, then prefer the
# key cache method. This is mainly used to force long character keys in
# large tables to use the slower key cache method to create the index.
myisam_sort_buffer_size=69M
# Size of the Key Buffer, used to cache index blocks for MyISAM tables.
# Do not set it larger than 30% of your available memory, as some memory
# is also required by the OS to cache rows. Even if you're not using
# MyISAM tables, you should still set it to 8-64M as it will also be
# used for internal temporary disk tables.
key_buffer_size=64M
# Size of the buffer used for doing full table scans of MyISAM tables.
# Allocated per thread, if a full scan is needed.
read_buffer_size=64K
read_rnd_buffer_size=256K
Как я понимаю все другие значения в my.ini мне трогать не надо, так как они относятся к настройке innodb.
Прошу у вас помощи по оптимизации базы.
Неактивен
key_buffer_size=10G
А почему не хотите использовать InnoDB?
Неактивен
с MyISAM как то проще)
а вы считаете что InnoDB лучше подойдет для онлайн игр?
спасибо за key_buffer_size=10G
Отредактированно Григорий (19.01.2011 14:58:07)
Неактивен
Да, если в игру играет более одного человека
InnoDB хорош хотя бы тем, что он позволяет осуществлять параллельную запись
в одну таблицу.
Неактивен
ну опять же если я воспользуюсь InnoDB
то мне снова придется просить у вас помощи об оптимизации))
Неактивен
Здравствуйте еще раз.
у меня логин сервере все время пишет что то с вязаное с буффером
вот какая ошибка пишется: *WARN* Pooled Buffer is Exhausted!
Хотел бы поинтересоваться, может она как то связана с mysql?
если да, то как можно устранить ее?
+ возможно как то еще лучше улучшить производительность на MyISAM?
к примеру:
в онлайн игре жанра MMORPG игроки собираются в одном месте (к примеру 500 человек)
и начинаются маааленькие задержки, возможно это из за MyISAM?
Отредактированно Григорий (20.01.2011 14:42:51)
Неактивен
Это не ошибка MySQL, но связана ли она с MySQL, не известно. Например,
это может быть буфер приложения.
Может быть из-за MyISAM, а может быть и нет. Зависит от запросов. Смотрите,
ждут ли у Вас какие-то запросы таблиц.
Неактивен
Так как я во обще мало чего знаю о Mysql, не могли бы вы подсказать как узнать (посмотреть) ждут ли запросы таблиц или нет.
Неактивен
Выполните SHOW PROCESSLIST и смотрите состояние потоков. Если все висят в
состоянии Sleep — они ничего не делают, и в базу Вы не упираетесь. Если Waiting
for table — ждут таблицу. Скорее всего, из-за MyISAM.
Неактивен