# 此缓冲被使用来优化全联合(full JOINs 不带索引的联合).
# 类似的联合在极大多数情况下有非常糟糕的性能表现,
# 但是将此值设大能够减轻性能影响.
# 通过 "Select_full_join" 状态变量查看全联合的数量
# 当全联合发生时,在每个线程中分配
join_buffer_size = 8M
# 我们在 cache 中保留多少线程用于重用
# 当一个客户端断开连接后,如果 cache中的线程还少于 thread_cache_size,
# 则客户端线程被放入cache 中.
# 这可以在你需要大量新连接的时候极大的减少线程创建的开销
# (一般来说如果你有好的线程模型的话,这不会有明显的性能提升.)
#thread cache池中应该存放的连接线程数.长连接的应用中,设为 50-100 之间. thread_cache_size= 80
# 此允许应用程序给予线程系统一个提示在同一时间给予渴望被运行的线程的数量.
# 此值只对于支持thread_concurrency() 函数的系统有意义( 例如 Sun Solaris).
# 你可可以尝试使用[CPU 数量]*(2..4) 来作为 thread_concurrency 的值
thread_concurrency = 8
# 查询缓冲常被用来缓冲 SELECT 的结果并且在下一次同样查询的时候不再执行直接返 回结果.
# 打开查询缓冲可以极大的提高服务器速度, 如果你有大量的相同的查询并且很少修改表.
# 查看 "Qcache_lowmem_prunes" 状态变量来检查是否当前值对于你的负载来说是否足够 高.
# 注意: 在你表经常变化的情况下或者如果你的查询原文每次都不同,
# 查询缓冲也许引起性能下降而不是性能提升. query_cache_size =64M
# 只有小于此设定值的结果才会被缓冲
# 此设置用来保护查询缓冲,防止一个极大的结果集将其他所有的查询结果都覆盖. query_cache_limit = 2M
# 被全文检索索引的最小的字长.
# 你也许希望减少它,如果你需要搜索更短字的时候.
# 注意在你修改此值之后,
# 你需要重建你的FULLTEXT 索引
ft_min_word_len= 4
Innodb 相关优化及说明:
#设置存储引擎默认引擎为InnoDB. default-storage_engine = InnoDB
# 附加的内存池被 InnoDB 用来保存 metadata 信息
# 如果 InnoDB 为此目的需要更多的内存,它会开始从 OS 这里申请内存.
# 由于这个操作在大多数现代操作系统上已经足够快, 你一般不需要修改此值.
# SHOW INNODBSTATUS 命令会显示当先使用的数量.
# 根据表的多少来确定大小,一般 16M己能适用于几百个表了. innodb_additional_mem_pool_size= 16M
#InnoDB 使用一个缓冲池来保存索引和原始数据, 不像 MyISAM.
# 这里你设置越大,你在存取表里面数据时所需要的磁盘 I/O 越少.
# 在一个独立使用的数据库服务器上,你可以设置这个变量到服务器物理内存大小的 80%
# 不要设置过大,否则,由于物理内存的竞争可能导致操作系统的换页颠簸.
# 注意在 32 位系统上你每个进程可能被限制在 2-3.5G 用户层面内存限制,
# 所以不要设置的太高.
# 这个参数影响会较大,在没有其它服务在此计算机上跑,80%是完全可以的。一般linux
系统给它 800M 问题系统使用己足够
innodb_buffer_pool_size = 14G
# InnoDB 将数据保存在一个或者多个数据文件中成为表空间.
# 如果你只有单个逻辑驱动保存你的数据,一个单个的自增文件就足够好了.
# 其他情况下.每个设备一个文件一般都是个好的选择.
# 你也可以配置 InnoDB 来使用裸盘分区 - 请参考手册来获取更多相关内容
innodb_data_file_path = ibdata1:10M:autoextend
# 设置此选项如果你希望 InnoDB 表空间文件被保存在其他分区.
# 默认保存在 MySQL 的 datadir 中.
#innodb_data_home_dir= <directory>
# 用来同步 IO操作的 IO 线程的数量. This value is
# 此值在 Unix 下被硬编码为 4,但是在 Windows磁盘 I/O 可能在一个大数值下表现的更好.
#innodb_file_io_threads 只是在 5.4版本之前使用这个参数,一般设置为cpu多少核,就设多 少。能达到比较好的效果.
innodb_file_io_threads =12