запросы к бд

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
bakhur
Сообщения: 202
Зарегистрирован: 2015.03.04, 10:56

запросы к бд

Сообщение bakhur »

Сколько оптимально для страницы посылать запросов к бд. У меня сейчас посылается около 30 запросов, для вывода информации по eav атрибутам. http://prntscr.com/a7c2gi - это нормально или надо думать над оптимизацией
Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: запросы к бд

Сообщение Nerf »

Преждевременная оптимизация === преждевременное семяизвержение...
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: запросы к бд

Сообщение maleks »

вы посмотрите на сами запросы, что к чему.
Что от eav, а что и не от него.

Это фронт или админка?
bakhur
Сообщения: 202
Зарегистрирован: 2015.03.04, 10:56

Re: запросы к бд

Сообщение bakhur »

это фронтенд под авторизацией. Лишнее убрал, сейчас если не под авторизацией сидеть то 16 запросов идет. Беспокоят вот такие странные запросы.

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

SELECT
    kcu.constraint_name,
    kcu.column_name,
    kcu.referenced_table_name,
    kcu.referenced_column_name
FROM information_schema.referential_constraints AS rc
JOIN information_schema.key_column_usage AS kcu ON
    (
        kcu.constraint_catalog = rc.constraint_catalog OR
        (kcu.constraint_catalog IS NULL AND rc.constraint_catalog IS NULL)
    ) AND
    kcu.constraint_schema = rc.constraint_schema AND
    kcu.constraint_name = rc.constraint_name
WHERE rc.constraint_schema = database() AND kcu.table_schema = database()
AND rc.table_name = 'category_rent' AND kcu.table_name = 'category_rent'
Вообще не ясно откуда они формируются. Вызов данного запроса идёт вот в этом коде

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

 $category = CategoryRent::find()->where(['alias' => $alias])->select('id,alias')->one(); 
может кто знает что это. Просто у меня таких аж целых 5 для разных таблиц.
Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: запросы к бд

Сообщение Nerf »

Создайте схемы с PK, FK, UNIQUE. Посмотрите, используется ли with() в списочных данных и т.п. Кешированием, созданием доп. индексов займитесь лучше потом. Тем более количеством запросов.
bakhur
Сообщения: 202
Зарегистрирован: 2015.03.04, 10:56

Re: запросы к бд

Сообщение bakhur »

Вот к примеру по этой же строки сколько запросов идет.

$category = CategoryRent::find()->where(['alias' => $alias])->select('id,alias')->one();

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

SHOW FULL COLUMNS FROM `category_rent` 

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

SELECT
    kcu.constraint_name,
    kcu.column_name,
    kcu.referenced_table_name,
    kcu.referenced_column_name
FROM information_schema.referential_constraints AS rc
JOIN information_schema.key_column_usage AS kcu ON
    (
        kcu.constraint_catalog = rc.constraint_catalog OR
        (kcu.constraint_catalog IS NULL AND rc.constraint_catalog IS NULL)
    ) AND
    kcu.constraint_schema = rc.constraint_schema AND
    kcu.constraint_name = rc.constraint_name
WHERE rc.constraint_schema = database() AND kcu.table_schema = database()
AND rc.table_name = 'category_rent' AND kcu.table_name = 'category_rent' 

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

SELECT `id`, `alias` FROM `category_rent` WHERE `alias`='bike' 
по идеи же должен идти один последний а не все 3
bakhur
Сообщения: 202
Зарегистрирован: 2015.03.04, 10:56

Re: запросы к бд

Сообщение bakhur »

Nerf писал(а):Создайте схемы с PK, FK, UNIQUE. Посмотрите, используется ли with() в списочных данных и т.п.
по этим вопросам у меня уже все настроено. хочу разобраться просто что за левые запросы идут к бд. Конечно несколько запросов идет ещё вот отсюда viewtopic.php?f=19&t=35595 так как вопрос так и остался не оптимизированным(
Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: запросы к бд

Сообщение Nerf »

А версия какая? Мб в 2.0.7 что-то поменяли. Но запросы типа
SHOW FULL COLUMNS FROM `category_rent`
были всегда, нужно же откуда-то получать атрибуты моделей.
ПС: Если сильная нужна оптимизация, то show лучше в кеш потом положить.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: запросы к бд

Сообщение zelenin »

bakhur писал(а):Вот к примеру по этой же строки сколько запросов идет.

$category = CategoryRent::find()->where(['alias' => $alias])->select('id,alias')->one();

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

SHOW FULL COLUMNS FROM `category_rent` 

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

SELECT
    kcu.constraint_name,
    kcu.column_name,
    kcu.referenced_table_name,
    kcu.referenced_column_name
FROM information_schema.referential_constraints AS rc
JOIN information_schema.key_column_usage AS kcu ON
    (
        kcu.constraint_catalog = rc.constraint_catalog OR
        (kcu.constraint_catalog IS NULL AND rc.constraint_catalog IS NULL)
    ) AND
    kcu.constraint_schema = rc.constraint_schema AND
    kcu.constraint_name = rc.constraint_name
WHERE rc.constraint_schema = database() AND kcu.table_schema = database()
AND rc.table_name = 'category_rent' AND kcu.table_name = 'category_rent' 

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

SELECT `id`, `alias` FROM `category_rent` WHERE `alias`='bike' 
по идеи же должен идти один последний а не все 3
это запрос схемы. Можно включить кэширование в настройках. Обычно включают на продакшне, т.к. на деве схема часто меняется.
Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: запросы к бд

Сообщение Nerf »

zelenin писал(а): это запрос схемы. Можно включить кэширование в настройках. Обычно включают на продакшне, т.к. на деве схема часто меняется.
Это в 2.0.7 или не mysql? У меня в логах SHOW FULL COLUMNS и SHOW CREATE TABLE.
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: запросы к бд

Сообщение zelenin »

Nerf писал(а):
zelenin писал(а): это запрос схемы. Можно включить кэширование в настройках. Обычно включают на продакшне, т.к. на деве схема часто меняется.
Это в 2.0.7 или не mysql? У меня в логах SHOW FULL COLUMNS и SHOW CREATE TABLE.
да, на разных субд разные запросы. это похоже на запрос в постгресе
bakhur
Сообщения: 202
Зарегистрирован: 2015.03.04, 10:56

Re: запросы к бд

Сообщение bakhur »

А какое именно кеширование надо? у меня сейчас стоят такие настройки на кеш

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

 
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ], 
bakhur
Сообщения: 202
Зарегистрирован: 2015.03.04, 10:56

Re: запросы к бд

Сообщение bakhur »

спасибо большое:)
Закрыто