服务器层内存les7 mysql server.pdf
服务器层内存概览
参数角度认识:
1.线程独享:
•binlog_cache_size
•thread_stack
•sort_buffer_size
•join_buffer_size
•net_buffer_length
•tmp_table_size
服务器层内存概览
2.线程共享:
•query_cache_size
•table_cache
•thread_cache
•table_definition_cache
innodb_buffer_pool_size,innodb_log_buffer_size?
binlog_cache_size
•缓存各种数据变更操作产生的binlog信息
•超过binlog_cache_size,则使用磁盘临时文件
•max_binlog_cache_size
Error:Multi-statementtransactionrequiredmorethan
max_binlog_cache_sizebytesofstorage
•提高binlog写入性能
•binlog_cache_disk_use
binlog_cache_use
thread_stack
•默认192KB,64位OS分配256KB
•存放每个线程的标志信息,如线程id、线程运行时的基本
信息等
•用来设置为每个线程栈分配多大内存
•vsOraclePGA?
sort_buffer_size
•为每个线程分配,用于orderby操作
•将数据检索出后,放入sortbuffer进行filesort
•如果不够用,会使用MyISAM磁盘表
join_buffer_size
•多表join时使用的内存块
•为了减少参与join的“被驱动表”的次数,将前面join的
结果集放入joinbuffer再与本表进行join
•若joinbuffer不够?
部分join返回output,清除,再放入。最大4G
•当被驱动表方式为:ALL,INDEX,RANGE,INDEX_MERGE
时生效
不使用join_buffer时
A.id=B.idB.rid=C.id
ResultSet
JoinQuery
Output
...
...
...
使用join_buffer时
A.id=B.idB.rid=C.id
JoinBuffer
ResultSet