如何确定MySQL中的全局和线程缓冲区大小?
我目前正在调试与cloudsql mySQL数据库相关的一些性能问题,并希望调查其配置参数 在云sql文档中可以找到以下注释: “: 要确定可为此标志设置的最大值,请 基本公式如下:如何确定MySQL中的全局和线程缓冲区大小?,mysql,google-cloud-sql,Mysql,Google Cloud Sql,我目前正在调试与cloudsql mySQL数据库相关的一些性能问题,并希望调查其配置参数 在云sql文档中可以找到以下注释: “: 要确定可为此标志设置的最大值,请 基本公式如下: 可用RAM=全局缓冲区+(线程缓冲区x最大连接数) max_connections=(可用RAM-全局缓冲区)/线程缓冲区 要获取缓冲区及其值的列表:显示变量,如“%buffer%”;为其他需要缓冲区的进程留出一些空间 记忆。” 但是,运行sql命令会产生以下输出: mysql>显示像“%buffer%”这样的变量
可用RAM=全局缓冲区+(线程缓冲区x最大连接数)
max_connections=(可用RAM-全局缓冲区)/线程缓冲区
要获取缓冲区及其值的列表:显示变量,如“%buffer%”;
为其他需要缓冲区的进程留出一些空间
记忆。”
但是,运行sql命令会产生以下输出:
mysql>显示像“%buffer%”这样的变量;
+-------------------------------------+----------------+
|变量名称|值|
+-------------------------------------+----------------+
|批量插入缓冲区大小8388608|
|innodb_缓冲区_池_块_大小| 55574528|
|innodb_缓冲区_池_转储_关闭|打开|
|innodb|u buffer|u pool|u dump|u立即关闭|
|innodb缓冲池转储pct 25|
|innodb_buffer_pool|filename|ib_buffer_pool|
|innodb_buffer_pool_in_core_file|ON|
|innodb|u缓冲区|u池|u实例| 1|
|innodb缓冲池加载中止关闭|
|innodb_buffer_pool_load_at_startup|ON|
|innodb_缓冲区_池_立即加载|关闭|
|innodb_缓冲区_池|大小| 55574528|
|innodb_更改_缓冲区_最大|u大小| 25|
|innodb|u change|u buffering|all|
|innodb_日志_缓冲区|16777216|
|innodb_排序_缓冲区|u大小1248576|
|连接缓冲区大小262144|
|键缓冲区大小| 8388608|
|myisam_排序_缓冲区|8388608|
|净缓冲区长度16384|
|预加载缓冲区大小32768|
|读取缓冲区大小131072|
|读取缓冲区大小262144|
|排序缓冲区大小262144|
|sql_缓冲区|结果|关闭|
+-------------------------------------+----------------+
一组25行(0.02秒)
我不明白该在公式中插入哪些值。哪些值对应于全局缓冲区和线程缓冲区?我发现下面列出了哪些是全局缓冲区和线程缓冲区变量,它们是:
- 全局缓冲区:
key_buffer_size innodb_buffer_pool_size innodb_log_buffer_size innodb_additional_mem_pool_size net_buffer_size query_cache_size
- 线程缓冲区:
sort_buffer_size myisam_sort_buffer_size read_buffer_size join_buffer_size read_rnd_buffer_size thread_stack