安装MySQL服务器非常容易。但是,安装后,配置服务器是DBA的重要任务。

拥有2GB的RAM和250GB的磁盘空间,我应该如何调整MySQL Server,以表现良好?

InnoDB发动机还应该有适当的配置。

有帮助吗?

解决方案

这是我对InnoDB的一些建议。根据我的经验,缓冲池的大小是最重要的,因为您可以在缓存中保留的数据越多,系统使用磁盘iOS的时间就越少。

http://dev.mysql.com/doc/refman/5.5/en/innodb-buffer-pool.html这是缓冲池,其中数据和索引被缓存

innodb_buffer_pool_size=(In Mb, 80% of available RAM), ,对于2GB,我将排名1536。

仔细监视您的系统,如果您开始看到交换,请准备减少此变量。

http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_additional_mem_pool_size这是元数据存储的地方。如果您有很多桌子,那么增加这将是有用的。

innodb_additional_mem_pool_size=16M

http://dev.mysql.com/doc/refman/5.1/en/innodb-parameters.html#sysvar_innodb_data_file_path在这里,您可以定义IBDATA文件的位置。如果您可以将IBDATA文件放在使用单独控制器的单独磁盘上,则可以减少争议。请注意此选项。在使用此变量之前,请确保阅读此变量。如果您的IBDATA文件需要超过29G,则MySQL将停止其所做的一切,并等待您添加空间。

innodb_data_file_path = ibdata1:128M:autoextend:max:29G

该管理IBDATA文件的增量增加了。因此,如果您将一个非常少量的10MB数字放在,那意味着InnoDB如果您有很多插入物,将花费大量时间来增加其IBDATA文件。

innodb_autoextend_increment = 128M

在哪里放置事务日志。如果您可以使用单独的控制器将事务日志放在其他磁盘上,这也将减少争议

innodb_log_group_home_dir = /tlog/

日志文件的大小是多少

innodb_log_file_size = 500M

缓冲池尺寸的25%,允许大型交易无需写入磁盘而运行

innodb_log_buffer_size = 384M

我还定义了临时目录的去向。定义MySQL创建临时文件的位置。减少争执的另一种方法。

我通常留出足够的空间,以允许服务器上最大的表格重新索引。

tmpdir=/opt/tmp/

并且错误日志很有用,以防万一出现问题并且需要麻烦拍摄。

log-error=/var/log/mysql.err

另外,如果您有4个以上的CPU,则可以增加这些变量Innodb_thread_concurrency = 8 Innodb_file_io_threads = 4

这与InnoDB无关。您可以玩的其他变量与InnoDB无关。我在底部添加了它们,但是它们直接从我用于测试的服务器中取出。避免仅复制和粘贴它们。根据您使用的版本阅读MySQL的文档是做出正确选择的最佳方法。

# Fine Tunning
key_buffer              = 512M
max_allowed_packet      = 16M
thread_stack            = 128K
thread_cache_size       = 8
join_buffer_size        = 64M
sort_buffer_size        = 16M
myisam_max_sort_file_size = 1024M
tmp_table_size = 256M
max_heap_table_size = 257M
myisam_sort_buffer_size=1024M

table_cache            = 1000
thread_concurrency     = 8
# * Query Cache Configuration
#
query_cache_limit       = 16M
query_cache_size        = 16M


skip-name-resolve
许可以下: CC-BY-SA归因
不隶属于 dba.stackexchange
scroll top