我有一个像google play这样的原生应用程序商店,我需要加载应用程序详细信息非常快,我不想选择和连接表来创建应用程序详细信息,我需要一个动态缓存系统,其中android应用程序调用我的Web服务,Web服务不从数据库实例中选择从缓存中选择,您有什么想法吗?注意:加载应用程序详细信息的速度非常重要,您知道谷歌使用什么机制来完成这项工作吗?
如何始终保持缓存更新?
答案 0 :(得分:1)
我只想创建一个返回您正在寻找的信息的查询。 MySQL将自动缓存经常执行的查询结果。如果您的查询速度很慢,那么您可能需要重构数据库,或重写查询。
如果您还需要其他任何内容,我首先要将MySQL Query Results Cache Plugin安装到您的服务器上。
[摘录]
有四种方法可以触发查询缓存。
- 基于每个查询使用SQL提示
- 用户提供的回调来决定每个查询,例如,使用mysqlnd_qc_is_select()
- mysqlnd_set_cache_condition()用于基于规则的自动每个查询决策
- mysqlnd_qc.cache_by_default = 1盲目缓存所有查询
设置自动缓存的规则。
SQL提示是符合SQL标准的注释。作为SQL注释,数据库会忽略它。如果语句以SQL提示启用缓存开头,或者它是SELECT语句,则认为该语句有资格进行缓存。
应缓存的单个查询必须以SQL提示/ qc = on /开头。建议使用PHP常量MYSQLND_QC_ENABLE_SWITCH而不是使用字符串值。
不符合缓存条件且未缓存:INSERT INTO test(id)VALUES(1)
不符合缓存条件且未缓存:SHOW ENGINES
有资格进行缓存但未缓存:SELECT id FROM test
有资格获得缓存和缓存:/ qc = on / SELECT id FROM test
示例SELECT语句字符串以MYSQLND_QC_ENABLE_SWITCH SQL提示为前缀,以启用语句的缓存。必须在语句字符串的最开头给出SQL提示以启用缓存。