Соответственно, если мы выполняем SELECT * всякий раз, то мы тянем много текста и + более 50 полей, которые не нужны.
Вы правы, но тут дело осложняется тем, что могут быть поля, которые не указаны для отображения в списке, но использоваться в поле Текст по шаблону, соответственно должны быть выбраны, + формульные поля, могут быть не в списке но использоваться для фильтров, соответственно тоже должны быть выбраны. Сложно все предусмотреть.
Также, как кэшировали отчеты, можно кэшировать основное меню. Руководитель тоже каждый раз обращается к БД, чтобы его построить. Тоже даст прирост производительности и сократит нагрузку на базу.
В принципе можно, но тут дело осложняется тем, что кеш должен каждый раз обновляться при настройке сущностей, отчетов, настройке прав и т.д. Все эти вещи сложно предусмотреть. Несколько простых запросов не повлияет на производительность. Вот мы с вами в 10 раз сократили простые запросы и что? Явных улучшений это не дало, потому что основная нагрузка идет на формульные поля, тоесть сложные вычисления с под-запросами.
По поводу SET OPTION, Руководитель постоянно выполняет команду "SET sql_mode" но это не всегда нужно, и я вынес настройку в config.php
Так же SHOW PRIVILEGES нужно проверять только при работе с сущностями, так же поправил этот момент.