全局缓存:
key_buffer_size:决定索引处理的速度,尤其是索引读的速度。默认值是16M。该参数只对MyISAM表起作用。
innodb_buffer_pool_size: InnoDB使用该参数指定大小的内存来缓冲数据和索引,这个是Innodb引擎中影响性能最大的参数。
innodb_additional_mem_pool_size: 指定InnoDB用来存储数据字典和其他内部数据结构的内存池大小。缺省值是8M。通常不用太大,够用即可,应该与表结构的复杂度有关系。如果不够用,mysql会在错误日志中写入一条警告信息。
innodb_log_buffer_size: 指定Innodb用来存储日志数据的缓存大小,相当于oracle中的log buffer
query_cache_size: 是mysql的查询缓存大小。大多数情况下禁用该参数。
线程缓存:
每个连接到mysql服务器的线程都需要有自己的缓存。大概需要立刻分配256K,甚至在线程空闲时,他们使用默认的线程堆栈,网络缓存等。事务开始之后,则需要增加更多的空间。运行较小的查询可能仅给指定的线程增加少量的内存消耗,然而如果对数据表做复杂的操作例如扫描、排序或者需要临时表,则需要分配read_buffer_size、sort_buffer_size、read_rnd_buffer_size、tmp_table_size大小的内存空间。不过他们只是在需要的时候才分配,并且在那些操作完成之后便释放。
read_buffer_size: 是mysql读入缓冲区大小。对表进行顺序扫描的请求将分配一个读入缓冲区,mysql会为它分配一段内存缓冲区。该参数用来控制读入缓冲区的大小。如果对表的顺序扫描请求非常的频繁,并且认为频繁扫描进行的太慢,可以通过增加该变量值以及内存缓冲区大小来提高性能