MySQL提供了两种存储引擎:MyISAM和 InnoDB,MySQL4和5使用默认的MyISAM存储引擎。从MYSQL5.5开始,MySQL已将默认存储引擎从MyISAM更改成InnoDB。并发
MyISAM没有提供事务支持,而InnoDB提供了事务支持。高并发
建议设置default-storage-engine=InnoDB,强烈建议不要再使用MyISAM引擎。性能
调整innodb_buffer_pool_size的大小,若是是单实例且绝大多数是InnoDB引擎表的话,可考虑设置为物理内存的50% -70%左右。spa
设置innodb_file_per_table = 1,使用独立表空间。事务
调整innodb_data_file_path = ibdata1:1G:autoextend,不要用默认的10M,在高并发场景下,性能会有很大提高。内存
设置innodb_log_file_size=256M,设置innodb_log_files_in_group=2,基本能够知足大多数应用场景。it
调整max_connection(最大链接数)、max_connection_error(最大错误数)设置,根据业务量大小进行设置。io
另外,open_files_limit、innodb_open_files、table_open_cache、table_definition_cache能够设置大约为max_connection的10倍左右大小。innodb
key_buffer_size建议调小,32M左右便可,另外建议关闭query cache。建议key_buffer设置为物理内存的1/4(针对MyISAM引擎),甚至是物理内存的30%~40%,若是key_buffer_size设置太大,系统就会频繁的换页,下降系统性能。table
tmp_table_size和max_heap_table_size设置不要过大,另外sort_buffer_size、join_buffer_size、read_buffer_size、read_rnd_buffer_size等设置也不要过大。