Оптимизировать запрос к базе

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Zik_UA
Сообщения: 22
Зарегистрирован: 2017.02.03, 00:19

Оптимизировать запрос к базе

Сообщение Zik_UA »

Есть таблица в базе с 10 000 записей.
Я Создал GRUD.

Страница грузится очень долго.
Как оптимызуваты сапит чтобы грузило скорыше

Модель

Код: Выделить всё

<?php

namespace app\models;

use Yii;

class Report extends \yii\db\ActiveRecord
{

    public static function tableName()
    {
        return 'table_test';
    }

    public function rules()
    {
        return [
            [['date_s'], 'safe'],
            [['status', 'lat', 'lng', 'speed', 'satellites'], 'required'],
            [['lat', 'lng', 'speed'], 'number'],
            [['satellites'], 'integer'],
            [['status'], 'string', 'max' => 255],
        ];
    }

    public function attributeLabels()
    {
        return [
            'id' => 'id',
            'date_s' => 'Дата',
            'status' => 'Статус',
            'lat' => 'Ширина',
            'lng' => 'Довгота',
            'speed' => 'Швидкість',
            'satellites' => 'Кіл-сть саталіти',
            'name' => 'Відстань',
        ];
    }
Контролер

Код: Выделить всё

	public function actionIndex()
    {
        $searchModel = new ReportSearch();
        $dataProvider = $searchModel->search(Yii::$app->request->queryParams);
        $dataProvider->pagination = ['pageSize' => 20];

        return $this->render('index', [
            'searchModel' => $searchModel,
            'dataProvider' => $dataProvider,
        ]);
    }
caHek2x
Сообщения: 1240
Зарегистрирован: 2016.04.12, 20:41

Re: Оптимизировать запрос к базе

Сообщение caHek2x »

как оптимизировать винду, вот фотка розетки ....
может вы нам саму search модель покажите ... что в дебаге .. .какой запрос ... сколько выполняется ... индексы как расставлены ...
Zik_UA
Сообщения: 22
Зарегистрирован: 2017.02.03, 00:19

Re: Оптимизировать запрос к базе

Сообщение Zik_UA »

Код: Выделить всё

	<?php

namespace app\models;

use Yii;
use yii\base\Model;
use yii\data\ActiveDataProvider;
use app\models\Report;

/**
 * ReportSearch represents the model behind the search form about `app\models\Report`.
 */
class ReportSearch extends Report
{
    public $long;

    public function rules()
    {
        return [
            [['id', 'satellites'], 'integer'],
            [['date_s', 'status'], 'safe'],
            [['lat', 'lng', 'speed'], 'number'],
        ];
    }

    /**
     * @inheritdoc
     */
    public function scenarios()
    {
        // bypass scenarios() implementation in the parent class
        return Model::scenarios();
    }

    /**
     * Creates data provider instance with search query applied
     *
     * @param array $params
     *
     * @return ActiveDataProvider
     */
    public function search($params)
    {
        $query = Report::find();

        // add conditions that should always apply here

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);

        $this->load($params);

        if (!$this->validate()) {
            // uncomment the following line if you do not want to return any records when validation fails
            // $query->where('0=1');
            return $dataProvider;
        }

        // grid filtering conditions
        $query->andFilterWhere([
            'id' => $this->id,
            'date_s' => $this->date_s,
            'lat' => $this->lat,
            'lng' => $this->lng,
            'speed' => $this->speed,
            'satellites' => $this->satellites,
        ]);

        $query->andFilterWhere(['like', 'status', $this->status]);

        return $dataProvider;
    }
}

caHek2x
Сообщения: 1240
Зарегистрирован: 2016.04.12, 20:41

Re: Оптимизировать запрос к базе

Сообщение caHek2x »

в дебаг зайдите .. .у вас там 10 000 запросов ... вас это не смущает ?
Zik_UA
Сообщения: 22
Зарегистрирован: 2017.02.03, 00:19

Re: Оптимизировать запрос к базе

Сообщение Zik_UA »

уже убрал... также
http://prntscr.com/gzjycg
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Оптимизировать запрос к базе

Сообщение zelenin »

как так же, если страница генерится в 20 раз быстрее?
caHek2x
Сообщения: 1240
Зарегистрирован: 2016.04.12, 20:41

Re: Оптимизировать запрос к базе

Сообщение caHek2x »

страница генерировалась за 8234 ... а теперь за 399 ... да вы правы вообще ничего не изменилось ...
Аватара пользователя
Йож
Сообщения: 574
Зарегистрирован: 2015.08.26, 03:05

Re: Оптимизировать запрос к базе

Сообщение Йож »

А в User - 100 логов? Это что?
caHek2x
Сообщения: 1240
Зарегистрирован: 2016.04.12, 20:41

Re: Оптимизировать запрос к базе

Сообщение caHek2x »

Йож писал(а): 2017.10.20, 01:24 А в User - 100 логов? Это что?
это же id юзера
Zik_UA
Сообщения: 22
Зарегистрирован: 2017.02.03, 00:19

Re: Оптимизировать запрос к базе

Сообщение Zik_UA »

caHek2x писал(а): 2017.10.20, 01:13 страница генерировалась за 8234 ... а теперь за 399 ... да вы правы вообще ничего не изменилось ...
Вы правы. Время загрузки изменился. Но по факту страница грузиться так же долго как и до того. Фактически мне нужно чтобы данную таблицу на 10000 записей вывело за 1 - 2 с. это возможно
caHek2x
Сообщения: 1240
Зарегистрирован: 2016.04.12, 20:41

Re: Оптимизировать запрос к базе

Сообщение caHek2x »

время выполнения запроса вполне нормальное, у вас что все 10 000 записей сразу на одной странице ? вот в этом тогда и беда ... это долгая отрисовка ...
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Оптимизировать запрос к базе

Сообщение ElisDN »

Zik_UA писал(а): 2017.10.20, 09:25 Фактически мне нужно чтобы данную таблицу на 10000 записей вывело за 1 - 2 с. это возможно
Это тормоза уже цикла с ActiveRecord. Используйте $query->asArray(), чтобы вернулось массивами.
Ответить