我在ESXi平台上运行的Ubuntu 10.10服务器上有一个innodb。 我有专用的8个CPU,32 Gig的ram,以及存储在SAS 10k rpm磁盘的Raid 5 HP SAN中的文件。 我期待快速查询! 但是:select count('x')需要45秒7500万行! 所以,我挖掘了这个野兽:
1)我的一些设置导致mysql炸弹与“未知的variables”错误。 这些是:
innodb_file_format = barracuda innodb_read_io_threads = 6 innodb_write_io_threads = 6 innodb_io_capacity = 1000
2)我的其他设置不会崩溃的MySQL,但可能没有优化..
skip_name_resolve default_storage_engine = InnoDB innodb_file_per_table = 1 innodb_buffer_pool_size = 24G innodb_log_files_size = 1G innodb_log_buffer_size = 8M innodb_flush_method = O_DIRECT innodb_flush_log_at_trx_comit = 1 key_buffer = 16M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 32 query_cache_limit = 1M query_cache_size = 0
是否有任何额外的调整,你会build议在这些设置? 我缺less的任何其他设置?
感谢您的支持!
innodb_file_format = barracuda innodb_read_io_threads = 6 innodb_write_io_threads = 6 innodb_io_capacity = 1000
这些设置是MySQL 5.5特定的。 如果你使用MySQL 5.5来处理MySQL 5.0 / 5.1中的数据,你需要运行旧版本的MySQL,mysqldump,然后再把数据重新加载到mysql中。 梭子鱼格式是另一种InnoDB文件格式。 您必须从以前版本的MySQL和InnoDB迁移出来。 我一会儿写了一些东西 。
要仔细检查文件格式,请执行“SHOW VARIABLES LIKE'innodb_file_format';” 你应该看羚羊。
一旦你把这个问题弄清楚了,把其他variables曲解到这一点
innodb_read_io_threads = 64 innodb_write_io_threads = 64 innodb_io_capacity = 20000
毕竟,你有8个CPU。
MyISAM调整选项
InnoDB调整选项
InnoDB特定调整
InnoDB和MyISAMcachingconfiguration预测