Какое оптимальное количество запросов в БД в yii2?

Доброго времени суток. Практикуюсь в yii2 и поставил себе задачу написать админку. До этого писал небольшие админки для себя на процедурном стиле без фреймворков. Использую модуль yii2-admin и rbac для ролей пользователей. И обнаружил что этот самый модуль делает порядка 35 запросов в базу. Это не считая того, что и мои методы работают с базой, но там всего 2-4 запроса. В общей сложности на один action приходится 40 запросов к БД. Скажите, нормально ли это? Не много ли для проекта небольшого уровня? Для понимания скажу в общих чертах что из себя представляет админка по функционалу.

3 роли пользователей.
Соответственно у админа есть все полномочия на CRUD
Ну и у каждого пользователя на персональной странице выводятся записи принадлежащие ему.
В общем то ничего такого глобального из БД не тянется.
  • Вопрос задан
  • 809 просмотров
Пригласить эксперта
Ответы на вопрос 3
qonand
@qonand
Software Engineer
Какое оптимальное количество запросов в БД в yii2?

На этот вопрос нет ответа, все зависит от проекта и его функциональности поэтому никто Вам не скажет конкретную цифру. Чем меньше запросов тем лучше.
И обнаружил что этот самый модуль делает порядка 35 запросов в базу.

Насколько я понимаю к таблицам в которых хранятся RBAC-данные, в таком случае необходимо включить их кэширование
Ответ написан
Maksclub
@Maksclub
maksfedorov.ru
скорее всего идет ленивая загрузка, нужно жадную
https://habrahabr.ru/post/306248/
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
Какое оптимальное количество запросов в БД в yii2?
46
Вы спросите: "почему 46"? А я отвечу: "а почему бы и нет". Раз уж Вы попросили дать Вам ни чем не обусловленную цифру - пусть это будет 46.

В общей сложности на один action приходится 40 запросов к БД. Скажите, нормально ли это?

Нормально, ведь это меньше, чем 46. А вот можно ли сократить? Это уже другой вопрос, на который могут ответить экстрасенсы, я без кода не могу.

Не много ли для проекта небольшого уровня?

Теперь сложнее. Надо понять что такое "проекта небольшого уровня". Ну раз мы уж начали говорить о вещах не классифицированных - давайте договоримся. Для проекта небольшого уровня - 42. Для среднего - 46, а для большого - 67. Но это только при условии, что
ничего такого глобального из БД не тянется
а если тянется, то вводим "коэффициент глобального тягания" (КГТ 0.3) . Итого 46*0.3 = 13,8 запроса в БД

PS: ограничение по кол-ву запросов для проекта - это глупость. Ваша задача - оптимизировать проект. В процессе оптимизации следует обратить внимание и на количество запросов в БД. И тут мы должны смотреть "а можем ли мы сделать их оптимальнее, сделать их количество меньшим и т.д.", а не подгон под какую-то цифру. Ведь задача - "быстро работает", а не "создает меньше 46 запросов"
Соори за стеб, не хочу обидеть, просто хотел так обозначить. Сам когда-то задавался таким же вопросом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы