MySQL Query Datetime Performance

最近偶然发现有人在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')优秀两个数量级。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • //羡她.学她// 最爱看 她平静浅笑的模样 因岁旅阅历 更懂得将心事隐藏 羡她待世事 厌就疏远 喜多来往 一如待...
    单想阅读 75评论 0 1
  • 从前今天的零点一秒开始,就我们就踏入了新的一年——2019年。你感受到了什么吗?有人说我感到了时间的飞快,...
    附中2018级六班王泽林阅读 360评论 1 4
  • :作者 :赵志敏 远看滴水湖一眼望不到边。近看 湖面波光鳞鳞。湖水泛着涟漪,碧绿碧绿,清彻见底。真的是上天飞下...
    快乐的人ZZM阅读 1,952评论 2 3
  • 你,真的还好吗?你是否还会偶尔停下来想一想我呢?你到底有没有记起过一些小小的片段呢? 我还记得那句:“我是汤圆,你...
    孟小苒阅读 432评论 1 1
  • 一 肇惟岁首,正月元旦。 沈家少爷随家人车队上山,去上那正月初一头一炷香,祈一年福祉。 无奈今年仍是大雪封山,七八...
    春_风阅读 1,998评论 0 4