Php Redis比MySQL慢
我有两种方法,一种是查询数据库,另一种是从Redis缓存中检索数据Php Redis比MySQL慢,php,mysql,redis,Php,Mysql,Redis,我有两种方法,一种是查询数据库,另一种是从Redis缓存中检索数据 public function aaa() { for ($i = 0; $i < 1000; $i++) { $gl = DB::connection('webhesab')->table('gl_trans') ->where('memo_', 'LIKE', '%شعبه%') ->orWhere('account', '=',
public function aaa()
{
for ($i = 0; $i < 1000; $i++) {
$gl = DB::connection('webhesab')->table('gl_trans')
->where('memo_', 'LIKE', '%شعبه%')
->orWhere('account', '=', 111001)
->where('dimension2_id', '<>', 1)
->orWhere('person_id', '=', 0)
->where('dimension2_id', '<>', 1)
->orWhere('type_no', '<>', 50)
->limit(10)
->get();
}
}
public function bbb()
{
for ($i = 0; $i < 1000; $i++) {
$gl = cache()->get('gl_trans');
}
}
公共功能aaa()
{
对于($i=0;$i<1000;$i++){
$gl=DB::connection('webhesab')->table('gl_trans'))
->式中('memo_uuuu'、'LIKE'、'%u1588;عبه%'))
->或其中('account','=',111001)
->其中('dimension2_id','',1)
->orWhere('person_id','=',0)
->其中('dimension2_id','',1)
->或其中('type_no','',50)
->限额(10)
->get();
}
}
公共职能bbb()
{
对于($i=0;$i<1000;$i++){
$gl=cache()->get('gl_trans');
}
}
缓存对象的值和查询值完全相同
但缓存比数据库查询慢得多。大约aaa
长300毫秒,而bbb
长1900毫秒。
为什么?问题出在哪里?您应该发布cache()实现。如果没有这些,人们就无法帮助你解释它为什么慢
还有其他几点
可能是因为在bbb的for循环中,您每次都会获取所有数据?为什么要使用for循环缓存?不只是像aaaSorry那样的10条记录,但我们需要有关您的redis缓存配置的更多信息,因为这样一行简单的代码没有提供任何有用的信息。您还应该检查是连接还是获取(或两者都有)太慢了。
cache()
函数包含什么?您是在每次迭代中重用连接还是创建新连接?