Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP和Mysql创建动态缓存系统?_Php_Mysql_Database_Caching - Fatal编程技术网

如何使用PHP和Mysql创建动态缓存系统?

如何使用PHP和Mysql创建动态缓存系统?,php,mysql,database,caching,Php,Mysql,Database,Caching,我有一个像google play这样的原生应用商店,我需要更快地加载应用细节,我不想选择和连接表来创建应用细节信息,我需要一个动态缓存系统,android应用调用我的web服务,web服务不从数据库实例中选择从缓存中选择,你有什么想法吗?注意:加载应用程序细节的速度非常重要,你知道谷歌使用什么机制来完成这项工作吗 如何始终保持缓存更新 我只需要创建一个查询,返回您正在查找的信息。MySQL将自动缓存经常执行的查询结果。如果查询速度慢,则可能需要重构数据库或重写查询 如果您还需要其他帮助,我会首先

我有一个像google play这样的原生应用商店,我需要更快地加载应用细节,我不想选择和连接表来创建应用细节信息,我需要一个动态缓存系统,android应用调用我的web服务,web服务不从数据库实例中选择从缓存中选择,你有什么想法吗?注意:加载应用程序细节的速度非常重要,你知道谷歌使用什么机制来完成这项工作吗


如何始终保持缓存更新

我只需要创建一个查询,返回您正在查找的信息。MySQL将自动缓存经常执行的查询结果。如果查询速度慢,则可能需要重构数据库或重写查询

如果您还需要其他帮助,我会首先将安装到您的服务器上

[摘录]

有四种方法可以触发查询缓存

  • 基于每个查询使用SQL提示
  • 用户提供的回调用于根据每个查询进行决定,例如,使用mysqlnd\u qc\u is\u select()
  • mysqlnd\u set\u cache\u condition()用于基于规则的自动每查询决策
  • mysqlnd_qc.cache_by_default=1以盲目缓存所有查询
设置自动缓存的规则

SQL提示是符合SQL标准的注释。作为SQL注释,它被数据库忽略。如果语句以启用缓存的SQL提示开头,或者是SELECT语句,则认为该语句符合缓存条件

应缓存的单个查询必须以SQL提示/qc=on/开头。建议使用PHP常量MYSQLND_QC_ENABLE_开关,而不是使用字符串值

  • 不符合缓存条件且未缓存:插入测试(id)值(1)

  • 不符合缓存条件且未缓存:显示引擎

  • 符合缓存条件但未缓存:从测试中选择id

  • 符合缓存和缓存条件:/qc=on/从测试中选择id

示例SELECT语句字符串的前缀是MYSQLND_QC_ENABLE_SWITCH SQL提示,用于启用语句的缓存。必须在语句字符串的最开头给出SQL提示,才能启用缓存


为什么你认为再问同样的问题会得到不同的回答?@mark baker我用我想要的当前内容编辑我自己的问题。使用“穷人缓存”,创建一个包含格式化数据的html文件,然后在需要的地方包括这些数据,如果不到5分钟,则进行长时间选择并重新创建缓存。重复,“MySQL和PHP将自动缓存查询”——嗯,只有在安装和配置mysqlnd_qc的情况下。默认情况下,不会缓存任何内容。MySQL会自动缓存选择查询结果供以后使用。请参见“是”,但您在回答中引用的巨大部分需要明确安装和配置插件……啊,是的,确实如此。感谢您指出,MySQL文档现在声明:从MySQL 5.7.20开始,查询缓存已被弃用,并在MySQL 8.0中被删除。