【发布时间】:2011-01-22 22:42:54
【问题描述】:
我想知道是否有人可以为我指明正确的方向。我已经在我的 Snow Leopard OSX 机器上设置了一个本地 Mysql 5.1 沙箱,我安装了 Macports Mysql 5.1,并且从所有外观来看,它都在运行。它需要查询,数据库正在工作等。唯一奇怪的是,查询缓存不起作用。我之前已经让它在 linux 中运行,并让它在 5.0 xammp 安装中运行,但我对为什么它在这个设置中不起作用感到困惑。
一些细节...
% 猫 /etc/my.cnf | grep -i 查询缓存 query_cache_limit = 1M query_cache_size = 32M 查询缓存类型 = 1 mysql> 显示变量,如 '%query_cache%'; +------------------+----------+ |变量名 |价值 | +------------------+----------+ |有查询缓存 |是 | |查询缓存限制 | 1048576 | | query_cache_min_res_unit | 4096 | |查询缓存大小 | 33554432 | |查询缓存类型 |开 | | query_cache_wlock_invalidate |关闭 | +------------------+----------+ 6 行一组(0.00 秒) mysql> 显示类似 '%Qcache%' 的状态; +--------------+----------+ |变量名 |价值 | +--------------+----------+ | Qcache_free_blocks | 1 | | Qcache_free_memory | 33536856 | | Qcache_hits | 0 | | Qcache_inserts | 0 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached |第433章 | Qcache_queries_in_cache | 0 | | Qcache_total_blocks | 1 | +--------------+----------+ 8 行一组(0.01 秒)在我看来,一切都设置正确,这些设置与我在 5.0 和 4.1 上使用的设置基本相同。大多数查询都是可缓存的,我并没有专门排除缓存。我不知道是 Mac 问题,MacPorts 问题,还是 5.1 问题,还是我个人的问题。有人能看出我的设置有什么问题吗?
好的,补充一些信息。这似乎与 Innodb 有关。 MyISAM 查询似乎缓存得很好。
我的 inno 设置:
$ 猫 /etc/my.cnf | grep nno # 如果您使用 InnoDB 表,请取消注释以下内容 innodb_file_per_table innodb_data_home_dir = /opt/local/var/db/mysql5 innodb_data_file_path = ibdata1:10M:autoextend innodb_log_group_home_dir = /opt/local/var/db/mysql5 innodb_buffer_pool_size = 256M innodb_additional_mem_pool_size = 12M innodb_log_file_size = 50M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 2 innodb_lock_wait_timeout = 300 innodb_flush_method=O_DIRECT【问题讨论】:
-
你怎么知道它不起作用?您能否发布您尝试运行的查询?
-
这 433 个查询中的大多数 (>50%) 应该已缓存。我可以运行:“select * from student limit 10;”重复,它会增加 Qcache_not_cached 数字,但不会缓存查询。
-
此外,该查询返回远小于 1M 的 query_cache_limit
-
好的,一些附加信息。这似乎与 Innodb 有关。 MyISAM 查询似乎缓存得很好。
-
很少的交易,98% (ish) 的查询是单一的
标签: mysql macos osx-snow-leopard macports