尽量减少与缓存的数据库交互


Minimize database interactions with caching

我在看这个:

http://dev.mysql.com/doc/refman/5.1/en/query-cache.html

这是一种神奇的缓存方式,但它发生在数据库端,如果有一些PHP代码可以为你做同样的事情,那就太好了。

我的意思是你将你的查询发送到中间层,它会查看你的查询,决定是否需要再次连接到数据库。

有人为PHP做过类似的东西吗?你觉得这是个好主意吗?

对于任何缓存,重要的是实际的缓存和无效操作是由同一个应用程序(例如sql-server)完成的。
虽然编写一些客户端查询缓存可能并不困难,但在大多数情况下,这绝对没有意义,因为当缓存的数据过期时,客户端缓存不会(由sql服务器)通知。但实际上,查询缓存就是你建议的那层。
由于mysql的查询缓存不知道任何关于你的应用程序逻辑,它必须通过其他标准(例如表更改)使缓存无效。如果将其用作唯一的缓存(特别是在快速变化的表上),可能会导致性能差。
因此,您应该在您的客户端上使用一些复杂的缓存引擎来考虑您的应用程序逻辑。