简介
InnoDB对内存很敏感,如果它没有足够的内存来缓冲一个合理规模的数据集,那么它的性能可能会有所损失
#设置
innodb_file_per_table : 设置该选项将使InnoDB对每个表使用一个独立的数据存储文件.
默认情况下,InnoDB为每个数据库创建一个文件并用这个文件来管理数据库的表.
这意味着如果表的大小先增大然后有缩小,则很难回复磁盘空间.
步骤:
如果你先在现有数据库上更改此设置,应该备份该数据库,然后删除它,再更改选项,然后重新启动服务器,最后从备份中重新加载该数据库
innodb_buffer_pool_size
如果只使用InnoDB表,可以把这一项设置为可用内存的70%左右.
如果混合使用MyISAM和InnoDB,则将它减小一点以便给MyISAM留一些空间
innodb_log_buffer_size=4M
4M的大小可以满足绝大部分记录的需求,而且提供了一个合理的性能.如果你拥有很大的文本字段或blob字段,或者记录非常大,可以稍微提高一点
innodb_log_file_size = 256M
这是推荐的值
innodb_flush_log_at_trx_commit =2
将日志文件刷新到磁盘的频率.如果你可以容忍在发生崩溃时丢失一些记录,那么可以把它的值设为2来减少磁盘写入的数量,加快性能已经减少驱动器上的I/O负担
参考
高性能PHP应用开发