Ускорить выборку в базу

213
21 сентября 2017, 17:15
     $sql = "SELECT MIN(o.date_added) AS date_start, MAX(o.date_added) AS date_end, COUNT(*) AS orders , 
            SUM((SELECT SUM(op.quantity) FROM `" . DB_PREFIX . "order_product` op WHERE op.order_id = o.order_id GROUP BY op.order_id)) AS products , 
            SUM((SELECT SUM(ot.value) FROM `" . DB_PREFIX . "order_total` ot WHERE ot.order_id = o.order_id AND ot.code = 'tax' GROUP BY ot.order_id)) AS tax,
            SUM(o.total) AS `total` FROM `".DB_PREFIX."order` o";
    if (!empty($data['filter_order_status_id'])) {
        $sql .= " WHERE o.order_status_id = '" . (int)$data['filter_order_status_id'] . "'";
    } else {
        $sql .= " WHERE o.order_status_id > '0'";
    }
    if (!empty($data['filter_date_start'])) {
        $sql .= " AND DATE(o.date_added) >= '" . $this->db->escape($data['filter_date_start']) . "'";
    }
    if (!empty($data['filter_date_end'])) {
        $sql .= " AND DATE(o.date_added) <= '" . $this->db->escape($data['filter_date_end']) . "'";
    }
    if (!empty($data['filter_group'])) {
        $group = $data['filter_group'];
    } else {
        $group = 'week';
    }
    switch($group) {
        case 'day';
            $sql .= " GROUP BY YEAR(o.date_added), MONTH(o.date_added), DAY(o.date_added)";
            break;
        default:
        case 'week':
            $sql .= " GROUP BY YEAR(o.date_added), WEEK(o.date_added)";
            break;
        case 'month':
            $sql .= " GROUP BY YEAR(o.date_added), MONTH(o.date_added)";
            break;
        case 'year':
            $sql .= " GROUP BY YEAR(o.date_added)";
            break;
    }
    $sql .= " ORDER BY o.date_added DESC";
    if (isset($data['start']) || isset($data['limit'])) {
        if ($data['start'] < 0) {
            $data['start'] = 0;
        }
        if ($data['limit'] < 1) {
            $data['limit'] = 20;
        }
        $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit'];
    }
    $query = $this->db->query($sql);

Когда нагрузка на сайт не большая загружается за 8.62 s когда нагрузка большая то загружается долго , как можно ускорить запрос?

READ ALSO
Хочу скачать картинку с помощью php

Хочу скачать картинку с помощью php

Нужно сделать так, чтобы он сохранял таким образом название картинки например: a50a015295b0eb1211a7a87d7f6ca1_1-fulljpg а сейчас он сохраняет не понятно каким...

268
Парсинг JSON в SQL и последующее обновление

Парсинг JSON в SQL и последующее обновление

Всем добрый деньЕсть сервис который работает с файлом в json формате

252
file_get_contents time out

file_get_contents time out

file_get_contents в какой то из версий php имеет проблему с закрытием подключений

157
Помогите , я в замешательстве [требует правки]

Помогите , я в замешательстве [требует правки]

json_decode('{"status":false,"message":"Site not found"}'); Что тут не так?

149