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等設置也不要過大。