[mysqld]配置
default-storage-engine = MyISAM 默认选择某种表存储引擎
ignore-bulidin-innodb 忽略mysql自带的innodb引擎,使用这个配置时需要自己引入外部的innodb引擎,否则innodb表无法使用。
plugin-load = innodb=ha_innodb_plugin.so 加载外部引擎,如使用了ignore-bulidin-innodb后,需要引入一个外部的innodb引擎。注意外部引擎文件需要放在plugin_dir变量(配置)指定的目录下。如果有多个外部引擎使用这样的格式:plugin-load = "myplug1=myplug1.so;myplug2=myplug2.so"
init_connect = 'set names utf8' 客户端连接时,预先执行的命令。
--character-set-client-handshake 不忽略客户端的编码设置,对应的配置是--skip-character-set-client-handshake,忽略客户端的编码设置,直接采用服务器端character-set-server配置的编码
datadir 数据存放目录设置
socket 套接字位置
key_buffer_size 设置myisam引擎的索引文件(索引块)的内存缓冲大小。由于myisam的索引块会被取入到内存里,并且这些索引块是所有线程共享的,所以key_buffer_size对于myisam的性能影响很大。如何判断key_buffer_size设置是否合理呢,查看系统状态变量 Key_read_requests, Key_reads, Key_write_requests, 和 Key_writes,一般要求,Key_reads / Key_read_requests小于0.001,是比较理想的。而Key_writes / Key_write_requests 的比值一般接近1,除非你使用了延迟写入,或是常进行批量更新。
max_allowed_packet 允许传送的数据包大小
table_open_cache(旧名为table_cache) 缓存打开的表句柄的个数,可以通过观察状态变量,Opened_tables判断是否加大table_open_cache的大小。
sort_buffer_size 设置每个连接的排序缓冲大小,在使用order by和group by时,这个值是否合适非常重要,因为这两个操作,很难通过sql优化来提高性能,加大排序缓冲区以提高性能就显得非常重要了。观察Sort_merge_passes这个状态变量,可以帮你判断是否有必要增大这个值。需要注意的是,sort_buffer_size的值越大,需要用于分配的时间就越长,很有可能影响大部分query操作的速度,所以建议进行session级别的设置,每个连接自己需要时再设置该值。
read_buffer_size myisam的读缓冲区大小
read_rnd_buffer_size myisam用于读取通过order by查询的数据的缓冲区大小。
myisam_sort_buffer_size myisam批量修改、重建索引时使用的缓冲区。
thread_cache_size mysql缓存线程的数量,缓存线程以便重复利用,从而减少初始化线程的消耗。
query_cache_size 缓存query结果的缓存区大小
max_heap_table_size 和 tmp_table_size 内存表和临时表的最大内存空间。
max_connections 最大连接数
long_query_time 指定某个时间长度,超过这个时间的query会被认定为slow query。
slow_query_log和slow_query_log_file 是否开启慢日志和慢日志存放地址
interactive_timeout和wait_timeout 交互式连接与非交互式连接空闭等待时间。
innodb_buffer_pool_size innodb用于缓存数据和索引的内存空间大小 。
innodb_additional_mem_pool_size innodb用于存放数据字典及其他内部使用的信息的内存空间大小,当应用中数据表超多,这个值应该设置的超大。