我理解Memcache上的概念,但我有一个疑问。
让我们说:
我有一个包含三列的'用户'表: 用户身份 用户名 和密码。
让我们说查询是$ query =“select * from users”。第一次,查询被执行并作为md5($ query) - >结果存储在memcache中。
因此,当下次执行此查询时,将执行$ query的md5哈希。它匹配,结果从memcache中获取。
但是,如果我必须从上面的查询中选择2个参数,那该怎么办呢。
喜欢$ query =选择用户名,来自用户的密码。
那我该怎么办?理想情况下,我希望从用户的select *中获取相同的密钥,因为“select username,password from users”所需的所有数据都出现在与'select * from users'的密钥对应的结果中。
我如何管理这样的问题?
答案 0 :(得分:2)
也许您应该根据您选择的条件将“用户”结果存储在未更改的密钥下。您已经将整个用户表存储到密钥md5中(“select * from users”)。所以你可以:
答案 1 :(得分:1)
Memcache / PHP不知道您的数据库内部结构。如果需要,您必须手动执行此类优化。
否则,如果需要这种智能缓存,mysql的查询缓存可能更适合。