我正在尝试进行购买统计。所以for-each
就像这样:
for ($month = 0; $month <= $maxMonth; $month++) {
我在Laravel中做了以下查询:
$mainData = DB::table('table')
->where('a', $id)
->where('b', '>', 0)
->where('c', '>', 0)
->orderBy('d', 'DESC')
->where('a', '>=', DB::raw('UNIX_TIMESTAMP((LAST_DAY(DATE_SUB(NOW(), INTERVAL ' . intval($month) . ' MONTH))+INTERVAL 1 DAY)-INTERVAL 1 MONTH)'))
->where('a', '<', DB::raw('UNIX_TIMESTAMP(LAST_DAY(DATE_SUB(NOW(), INTERVAL ' . intval($month) . ' MONTH))+INTERVAL 1 DAY)'))
->get();
我更改了行的名称,因为我认为这不是重要的信息。 此外,完成这6个查询需要10-15秒。
我认为这非常慢,因为当我将->get()
更改为 - >toSql()
并在phpmyadmin中进行查询(使用相同的SQL)时,需要几毫秒。
为什么这个Laravel数据库这么慢?