Решил создать тему именно тут, т.к. это врятли проблема в настройке mysql-сервера.
Так вот. Стоит игровой сервер, естественно в базу идет множество запросов, в следствие чего она тупит. Для проверки была накидана прожка на java, которая многопоточно обновляла данные в таблице, результат удивил.. На сервере с 24гб оперативной памяти, 16 ядерным процессором и 2 жесткими дисками в RAID'e, запросы выполнялись медленнее чем на хиленьком компьютере с windows(!). Версии mysql - одинаковые, конфиг - одинаковый, база - одинаковая.Вот результат работы программы на винде:
Time passed: ....... 191268 ms
Total updates: ..... 2732320
Slow updates: ...... 0
Slowest update: .... 16 ms
Как видно, 2,732,320 запросов, и самый долгий апдейт был 16мс. Программа работала в 30 потоков, 50 соединений к базе.
Вот результат с debian-сервера:
Time passed: ....... 34101 ms
Total updates: ..... 46894
Slow updates: ...... 612
Slowest update: .... 2716 ms
Сделано совсем чуть-чуть запросов, а уже так "ужасно".
"Slowest update" - это те, которые дольше 500мс, настройки программы такие же, как и на винде. Вот сам конфиг mysql:
[client]
socket = /var/run/mysqld/mysqld.sock
port = 3306
default-character-set = utf8
[mysqld]
user = mysql
socket = /var/run/mysqld/mysqld.sock
datadir = /var/lib/mysql
pid-file = /var/run/mysqld/mysqld.pid
port = 3306
query_cache_size=0
table_cache=1024
thread_cache_size=16
thread_concurrency=8
#*** MyISAM Specific options
default_table_type=MYISAM
default-storage-engine=MyISAM
max_heap_table_size=256M
myisam_max_sort_file_size=10G
myisam_sort_buffer_size=128M
key_buffer_size=1G
read_buffer_size=64K
read_rnd_buffer_size=1M
sort_buffer_size=256K
join_buffer_size=512K
max_allowed_packet=64M
max_connections=500
max_user_connections=500
max_connect_errors=100
max_tmp_tables=2048000
tmp_table_size=256M
skip-external-locking
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
#slow_query_log
#slow_query_log_file = /var/lib/mysql/slow_query.log
long_query_time = 3
#log_short_format
#log-queries-not-using-indexes
# *** Replication related settings
server-id = 1
# Automatically check and repair not properly closed MyISAM tables.
myisam_recover
myisam_repair_threads = 1
character-set-server = utf8
collation-server = utf8_general_ci
# *** BDB Specific options ***
#skip-bdb
# *** INNODB Specific options ***
skip-innodb
[mysqldump]
socket = /var/run/mysqld/mysqld.sock
default-character-set = utf8
quick
max_allowed_packet = 64M
[mysql]
no-auto-rehash
default-character-set = utf8
max_allowed_packet = 64M
[isamchk]
key_buffer = 512M
sort_buffer_size = 512M
read_buffer = 32M
write_buffer = 32M
[myisamchk]
key_buffer = 512M
sort_buffer_size = 512M
read_buffer = 32M
write_buffer = 32M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
log-error = /var/log/mysql.log
socket = /var/run/mysqld/mysqld.sock
open-files-limit = 8192
[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
Версия mysql - 5.1.47
Ядро на дебиане - 2.6.26-2-amd64
База и там и там - MyISAM
Данных в таблице, по которой идет апдейт - примерно 1,600,000
Глобальные переменные и там и там одинаковые
Еще одна интересная вещь в том, что любом unix-сервере моем, эта программа выдавало плачевный результат, а на долбаной винде - нормально, как так? подскажите, где копать, уж крайне не хочется на винду перелазить. Может какая проблема в java mysql-коннекторе или еще чего. Заранее благодарю за ответы.