我有一些性能很重的SQL查询,我无法进一步优化。由于这些查询以99%的速度提供相同的结果,因此我想实现一些缓存。
我发现shmop / PHP共享内存是几乎所有网络服务器上唯一可用的功能。 memcache,APC ...通常在共享主机服务器上不可用。
它通常效果很好并且显着降低了负载。我知道一般的共享内存安全问题(每个人都可以读取数据),但我不会将它用于敏感信息,我将在顶部使用mcrypt_decrypt。
但是,从长远来看,在不同的网络服务器上运行有多可靠? 是否可以推荐用于一般用途? 使用shmop时是否有人有负面影响,特别是在Windows服务器上?
非常感谢。
答案 0 :(得分:0)
我想你回答了自己的问题。通常,数据是共享的,因此不安全。根据定义,数据也可能随时丢失,因此不可靠。
如果您正在考虑使用99%相同的结果来改进SQL,请记住,MySQL也有一个查询缓存,因此缓存已经在为您工作,因为您已经正确配置了它。
如果你想在你的应用程序中进行缓存,请查看Redis,特别是作为支持标记的zend_cache后端,允许您标记缓存的值并使用标记进行刷新。