PHP中的查询缓存提高mySQL性能

PHP中的查询缓存提高mySQL性能,php,mysql,caching,Php,Mysql,Caching,我正在寻找一个系统来缓存一个已经编码的项目(使用PHP),它具有注册和登录系统等功能 我已经搜索了一些缓存解决方案,但我了解到,如果我使用这些功能,登录和发布系统将失败 我实际上需要的是存储一些spesific DB查询的结果,如果有缓存,调用该结果,如果没有,则生成一个新的缓存,并在每x分钟内重新缓存它们。(结果可以存储在txt.etc中) 我该怎么做 顺便说一下,将query\u cache\u type设置为1不起作用。我在寻找替代方案 谢谢基本上您需要缓存查询: # After: [w

我正在寻找一个系统来缓存一个已经编码的项目(使用PHP),它具有注册和登录系统等功能

我已经搜索了一些缓存解决方案,但我了解到,如果我使用这些功能,登录和发布系统将失败

我实际上需要的是存储一些spesific DB查询的结果,如果有缓存,调用该结果,如果没有,则生成一个新的缓存,并在每x分钟内重新缓存它们。(结果可以存储在txt.etc中)

我该怎么做

顺便说一下,将query\u cache\u type设置为1不起作用。我在寻找替代方案


谢谢

基本上您需要缓存查询:

 # After: [with memcache]
    $rSlowQuery = mysql_query_cache($sql);
    # $rSlowQuery is an array
    $rows = count($rSlowQuery);
    for ($i=0;$i<$rows;$i++) { }
#之后:[使用memcache]
$rSlowQuery=mysql\u query\u缓存($sql);
#$rSlowQuery是一个数组
$rows=计数($rSlowQuery);
对于($i=0;$i您可以尝试以下方法:

$mysqli -> query("/*qc=on*/ SELECT * FROM table");

减少数据库调用 检查一下是否支持WinCache、MemCache、文件、X-Cache、APC缓存。对于初学者来说很简单

数据库的PHP缓存类:您的网站有10000名访问者 您的动态页面必须将10000个相同的查询发送到 每次加载页面时都会加载数据库。使用phpFastCache,您的页面只发送1 查询数据库,并使用缓存服务9999个其他访问者


我最近遇到了一个类似的问题,下面是我如何解决它的


步骤1:
.user.ini
文件添加到项目根目录中(如果您还没有),并向该文件添加以下指令以启用
mysqlnd\u qc
插件并为缓存设置TTL:

; Enables MySQL query caching by PHP
mysqlnd_qc.enable_qc = 1

; Set a default TTL for the caching in seconds
mysqlnd_qc.ttl = 30
第2步:在mysqlnd\u qc缓存的任何查询之前添加SQL提示

以下是必须添加到查询中的提示:

 # After: [with memcache]
    $rSlowQuery = mysql_query_cache($sql);
    # $rSlowQuery is an array
    $rows = count($rSlowQuery);
    for ($i=0;$i<$rows;$i++) { }
下面是一个使用示例:


这样就可以了!您还可以使用
mysqlnd\u qc.cache\u no\u table=1
指令缓存所有查询

所有这些都来自PHP文档,如下所示:

我希望这会有所帮助!

这可能会有用:
"/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" .
$res = $mysqli->query("/*" . MYSQLND_QC_ENABLE_SWITCH . "*/" . "SELECT id FROM test WHERE id = 1");