gpt4 book ai didi

sql - MySQL:查询缓存(如何使用内存缓存?)

转载 作者:行者123 更新时间:2023-11-29 15:03:54 25 4
gpt4 key购买 nike

我有一个查询,例如:

SELECT id as OfferId FROM offers
WHERE concat(partycode, connectioncode) = ?
AND CURDATE() BETWEEN offer_start_date
AND offer_end_date AND id IN ("121211, 123341,151512,5145626 ");

现在我想使用 memcache 缓存此查询的结果,所以我的问题是

  1. 如何使用 memcache 缓存查询。
  2. 我目前正在使用 CURDATE(),如果我们想实现缓存,则无法使用 ojit_a,那么如何在不使用 CURDATE() 函数的情况下获取当前日期功能?

最佳答案

这样的事情应该有效:

function getOffers($ids) {
$key = implode(',', $ids);

$cache = new Memcache();
$cache->connect('localhost');
$content = $cache->get($key);
if ($content === false) {
// content is not cached, so we have to run the query
$content = $yourDb->query('your query here');
$cache->add($key, $content);
}

$cache->close();

return $content;
}

getOffers(array('121211','123341','151512','5145626'));

您可以通过对 $ids 进行排序来更进一步,以便相同的 ID“集”(但顺序不同)仍将利用该集的可用缓存。

这对日期不敏感,但您可以通过将日期字符串添加到 $key 来使其对日期敏感

关于sql - MySQL:查询缓存(如何使用内存缓存?),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2568307/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com