Mysql laravel中的查询优化

Mysql laravel中的查询优化,mysql,sql,laravel-4,Mysql,Sql,Laravel 4,这个查询可以优化吗?因为即使表中只有一行,显示结果也需要很长时间 $orders = Order::select(DB::Raw('orders.*, payments.*')) ->leftJoin('payments', function($join) { $join->on('orders.order_id', '=', 'payments.orderID') ->orwhere('pa

这个查询可以优化吗?因为即使表中只有一行,显示结果也需要很长时间

$orders = Order::select(DB::Raw('orders.*, payments.*')) 
        ->leftJoin('payments', function($join) {
            $join->on('orders.order_id', '=', 'payments.orderID') 
                     ->orwhere('payments.processed', '=', '');            
          })
        ->orderBy('order_id', 'asc')
        ->get();
所以我在这里查询表
订单
和表
付款
。条件必须检查是否存在匹配的
“orders.order\u id'、“=”、“payments.orderID”
。然后在页面上显示结果,并从两个表中选择列


我不知道为什么这项工作这么慢,它需要10秒加载页面,只显示一个结果。站点的其他部分速度很快,即使它们必须显示来自其他表的更多结果。

这是足够简单的查询,因此没有太多优化空间。 根据描述判断,尝试使用内部联接而不是左联接。
如果您有大量数据,请检查列(order_id,processed)上的必要索引是否到位。

好的,这意味着您的数据或其结构有问题。因为你有订单和付款,但它们彼此不相关。我在那里做的是从订单中选择+从付款中选择。这是因为我想检查订单id是否有任何记录。如果有记录,这意味着订单已付款,我在页面上显示已付款。如果没有记录意味着没有支付。这就是我加入付款表的原因,这里似乎没有什么问题。