我在一个普通的 linux 服务器(端口 3306、3307、3308、3309)上有 4 个 mysql db 实例。我试图通过调整服务器变量来提高查询缓存命中率。
我的疑问是,如果我登录到端口 3306 实例并运行命令来显示服务器和状态变量(例如显示状态,如 '%Qcache%'),是所有实例共同的结果还是仅特定于该实例。
所以,我想知道我会为每个实例设置变量还是设置它们将适用于所有实例(在这种情况下,变量与 query_cache 相关)
我在一个普通的 linux 服务器(端口 3306、3307、3308、3309)上有 4 个 mysql db 实例。我试图通过调整服务器变量来提高查询缓存命中率。
我的疑问是,如果我登录到端口 3306 实例并运行命令来显示服务器和状态变量(例如显示状态,如 '%Qcache%'),是所有实例共同的结果还是仅特定于该实例。
所以,我想知道我会为每个实例设置变量还是设置它们将适用于所有实例(在这种情况下,变量与 query_cache 相关)
如果您有四个单独的 MySQL 服务器守护程序运行,每个都可以单独设置其配置参数。通过在它们之间使用公共基础 my.cnf 可以使它们在所有四个实例上都相同。
如果您在端口上运行 4 个 mysql 进程,则3306, 3307, 3308, 3309
不同show status like '%Qcache%'
进程的值将不同。
关于变量的附加信息:
Qcache_free_blocks numeric GLOBAL
Qcache_free_memory numeric GLOBAL
Qcache_hits numeric GLOBAL
Qcache_inserts numeric GLOBAL
Qcache_lowmem_prunes numeric GLOBAL
Qcache_not_cached numeric GLOBAL
Qcache_queries_in_cache numeric GLOBAL
Qcache_total_blocks numeric GLOBAL
从上面我们可以看出这是在全局级别而不是在会话级别。
不是那么简单吗?