Size: a a a

2020 May 27

Д.

Дамир ... in Yii Framework 2
Добрый день,

Нужно вывести на странице все дочерние товары категории и ее подкатегорий.
Отдельным запросом получил список нужных подкатегорий. _Если делать в этом запросе время выполнения сильно возрастет._
Данный запрос выполняется 5секунд, что недопустимо.
Индексы приложу скриншотом
SELECT COUNT(*) FROM `offer` INNER JOIN `nomenclature` ON `offer`.`product_uuid` = `nomenclature`.`uuid` WHERE (`nomenclature`.`category_id` IN (464, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 712, 572, 573, 574, 575, 576, 577, 578, 150, 151, 579, 580, 581, 461, 534, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 737, 742, 748, 598, 599, 600, 732, 733, 738, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 726, 627, 628, 724, 725, 727, 735, 741, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 523, 642, 643, 644, 412, 645, 646, 647, 648, 556)) AND (quantity > 0)

В общем какие способы есть держать страницы в актуальном состоянии? Знаю что можно использовать кеш, только при первом заходе будет очень долго гурить (есть категории больше раза в 3).
источник

Д.

Дамир ... in Yii Framework 2
источник

V

Victooor in Yii Framework 2
Дамир ...
Добрый день,

Нужно вывести на странице все дочерние товары категории и ее подкатегорий.
Отдельным запросом получил список нужных подкатегорий. _Если делать в этом запросе время выполнения сильно возрастет._
Данный запрос выполняется 5секунд, что недопустимо.
Индексы приложу скриншотом
SELECT COUNT(*) FROM `offer` INNER JOIN `nomenclature` ON `offer`.`product_uuid` = `nomenclature`.`uuid` WHERE (`nomenclature`.`category_id` IN (464, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 712, 572, 573, 574, 575, 576, 577, 578, 150, 151, 579, 580, 581, 461, 534, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 737, 742, 748, 598, 599, 600, 732, 733, 738, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 726, 627, 628, 724, 725, 727, 735, 741, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 523, 642, 643, 644, 412, 645, 646, 647, 648, 556)) AND (quantity > 0)

В общем какие способы есть держать страницы в актуальном состоянии? Знаю что можно использовать кеш, только при первом заходе будет очень долго гурить (есть категории больше раза в 3).
Explode
источник

V

Victooor in Yii Framework 2
И возможно индекс по quantity
источник

Д.

Дамир ... in Yii Framework 2
Victooor
Explode
В MySQL чем его можно заменить? По описанию это функция работы со строками, она будет работать быстрее?
источник

КЯ

Константин Ярилин... in Yii Framework 2
Дамир ...
В MySQL чем его можно заменить? По описанию это функция работы со строками, она будет работать быстрее?
Она поможет понять что можно улучшить
источник

Д

Дмитрий in Yii Framework 2
Дамир ...
Добрый день,

Нужно вывести на странице все дочерние товары категории и ее подкатегорий.
Отдельным запросом получил список нужных подкатегорий. _Если делать в этом запросе время выполнения сильно возрастет._
Данный запрос выполняется 5секунд, что недопустимо.
Индексы приложу скриншотом
SELECT COUNT(*) FROM `offer` INNER JOIN `nomenclature` ON `offer`.`product_uuid` = `nomenclature`.`uuid` WHERE (`nomenclature`.`category_id` IN (464, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 712, 572, 573, 574, 575, 576, 577, 578, 150, 151, 579, 580, 581, 461, 534, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 737, 742, 748, 598, 599, 600, 732, 733, 738, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 726, 627, 628, 724, 725, 727, 735, 741, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 523, 642, 643, 644, 412, 645, 646, 647, 648, 556)) AND (quantity > 0)

В общем какие способы есть держать страницы в актуальном состоянии? Знаю что можно использовать кеш, только при первом заходе будет очень долго гурить (есть категории больше раза в 3).
вообще странно.. ну даже если там 51 тыща .. count()-то должен быстро выполниться. ну никак не 5 секунд.. разве-что у тебя там полу-дохлый пентиум 2.
источник

Д

Дмитрий in Yii Framework 2
точно с структурой базы что-то
источник

Д.

Дамир ... in Yii Framework 2
Дмитрий
вообще странно.. ну даже если там 51 тыща .. count()-то должен быстро выполниться. ну никак не 5 секунд.. разве-что у тебя там полу-дохлый пентиум 2.
i5-8400
3335.9 ms дает yii2

тот же запрос mysql
Отображение строк 0 - 24 (14891 всего, Запрос занял 0,0312 сек.)
источник

Д.

Дамир ... in Yii Framework 2
это как?
источник

Д

Дмитрий in Yii Framework 2
Дамир ...
i5-8400
3335.9 ms дает yii2

тот же запрос mysql
Отображение строк 0 - 24 (14891 всего, Запрос занял 0,0312 сек.)
у тебя там лимит стоит 0-24 во втором
источник

IS

I Scarab in Yii Framework 2
а quantity - это чьё поле? Индекса по нему нет, соответственно идёт фуллскан.
источник

Д

Дмитрий in Yii Framework 2
I Scarab
а quantity - это чьё поле? Индекса по нему нет, соответственно идёт фуллскан.
я так понимаю что это из offer
источник

Д.

Дамир ... in Yii Framework 2
I Scarab
а quantity - это чьё поле? Индекса по нему нет, соответственно идёт фуллскан.
стало быстрее, только есть еще есть долгие категории
источник

Д.

Дамир ... in Yii Framework 2
источник

Д.

Дамир ... in Yii Framework 2
хотя уже приемлимо, самая большая 11 секунд
можно и закешировать
источник

Д.

Дамир ... in Yii Framework 2
Всем спасибо
источник

Д

Дмитрий in Yii Framework 2
11 секунд?..
источник

ДК

Дмитрий Кожанов... in Yii Framework 2
Дамир ...
хотя уже приемлимо, самая большая 11 секунд
можно и закешировать
Индексы поставить. Такой мелкий запрос а 3 секунды выполняется
источник

Д.

Дамир ... in Yii Framework 2
Дмитрий Кожанов
Индексы поставить. Такой мелкий запрос а 3 секунды выполняется
все что в запросе вроде уже индекс
источник