美文网首页
MySQL Query Datetime Performance

MySQL Query Datetime Performance

作者: Alexever | 来源:发表于2019-11-16 21:41 被阅读0次

    最近偶然发现有人在Stack Overflow提到Laravel检索日期的时候,最好使用WhereBetween 而不是WhereDate,于是实地做了测试,非常明显。

    use App\Models\Ticket;
    use Carbon\Carbon;
    
    $now=Carbon::now();
    //query in 6 million rows.
    Ticket::whereDate('created_at',$now->toDateString())->count(); //1.2 sec
    
    Ticket::WhereBetween('created_at',[
            $now->startOfDay(),
            $now->endOfDay()
        ])->count();                                               //0.04sec
    

    显而易见,对时间区间进行查询的时候,最好直接对比区间值,where 'created_at' between 的效率比where date('created_at')优秀两个数量级。

    相关文章

      网友评论

          本文标题:MySQL Query Datetime Performance

          本文链接:https://www.haomeiwen.com/subject/zpruictx.html