首先,我正在使用PhpMyAdmin
,这样可以吗?
因为当我禁用
缓存,并互相执行两个查询时,第二个查询总是更快,所以我想PhpMyAdmin
上可能有内部缓存?
其次,有什么方法可以将查询所花费的时间获取到 php 中,并将其回显到浏览器上吗? (所以我可以使用 php 而不是 phpMyAdmin)
第三,SHOW STATUS LIKE '%qcache%'
给了我这个:
Qcache_free_blocks 1
Qcache_free_memory 25154096
Qcache_hits 0
Qcache_inserts 2
Qcache_lowmem_prunes 0
Qcache_not_cached 62
Qcache_queries_in_cache 2
Qcache_total_blocks 6
为什么我每次查询 Qcache_not_cached 都会增加 5
或 10
数量?每个查询不应该只增加 1
吗?
此外,当我启用缓存并执行查询时,Qcache_queries_in_cache
增加了 2
...我以为它会增加 1
对于每个查询,请解释一下?
然后,当我执行与缓存的查询相同的另一查询时,根本没有性能提升,查询花费的时间与未启用缓存的时间一样长......
除了引用手册之外,请提供任何帮助(我已经阅读过)。
谢谢
更新
这是我提出的典型查询:
SELECT * FROM `langlinks` WHERE ll_title='Africa'
最佳答案
First of all, I am using PhpMyAdmin, is this okay or not?
我想这总比没有好——而且比命令行客户端更用户友好;但我不喜欢 phpMyAdmin 的一点是它发送的查询不是您编写的。
我已经看到 phpMyAdmin 发送了一些“伤害”服务器的查询,而用户编写的查询则没问题,例如(我心里没有确切的例子) 。
不过,一般来说,只要您接受将发送更多请求,我会说“没问题”:phpMyAdmin 显示大量信息(例如数据库列表、表格等),并且必须从某个地方获取这些信息!
Shouldn't there only be 1 increase per query?
如果您确实想查看查询的影响而不是其他,您可能最好使用命令行 mysql
客户端,而不是 phpMyAdmin :该图形工具必须将查询发送到获取它显示的信息。
实际上,问题是:您更喜欢用户友好的工具吗?或者您只想监控查询实际执行的操作?
在大多数情况下,答案是“用户友好的工具”——这就是 phpMyAdmin 取得如此成功的原因;-)
关于php - MySql缓存问题...一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2226932/