Воюю с простыней, запросы в коде PHP 120-140 строк по 80-100 символов, т.е. по 14000 символов.
Запрос в БД (укороченный):
SELECT crd1.n AS r1, crd2.n AS r2, crd3.n AS r3, crd4.n AS r4
FROM crd crd1, crd crd2, crd crd3, crd crd4
WHERE crd2.n - crd1.n = ${size} AND crd4.n - crd3.n = ${size}
Это примерно 1/100 от всего запроса, т.е. по сути запрос в коде идет как простыня плюс еще несколько таких же запросов. Читаемость ужасная, время выполнения отличное))))
Придумал временное решение (только ради повышения читаемости) - если разбить запрос на одинаковые блоки (они там есть почти 60% одинаковых) и перед отправкой в базу просто соединять нужные, например (на самом деле блоки конечно гораздо длиннее, такие как в примере я и не думал бы разбивать)
$sql1="SELECT crd1.n AS r1, crd2.n AS r2, crd3.n AS r3, crd4.n AS r4 ",
$sql2="FROM crd crd1, crd crd2, crd crd3, crd crd4 ",
$sql3="WHERE condition "
и отсылаемый в базу
$sql=$sql1.$sql2.$sql3
Вопрос 1: сильно ли это увеличит время формирования перед отправкой в БД или все на грани погрешности?
Вопрос 2: заниматься ли оптимизацией типа выкинуть все операторы AS, порезать названия таблиц, алиасов и тд. или это грани погрешности?
Спасибо за внимание, господа!
Значительного изменения времени выполнения скрипта от обоих вопросов Вы не заметите.
Подумайте еще о классе Query, который будет содержать массив полей, список таблиц и набор условий и формировать SQL запрос автоматически.
А еще запросы можно вынести в отдельный константный модуль
Перевод документов на английский язык: Важность и ключевые аспекты
Какие существуют виды рекламных бордов и как выбрать подходящий?
Пытаюсь разобраться в sqlalchemy, подскажите, пожалуйста, как реализовать insert ignore при использовании sqlalchemy ormИмеем три таблицы вида:
Доброго времени сутокСкажите, а можно ли этот метод, который подключается к БД с изменениями внести в ActionListener для кнопки
Задача - необходимо подсчитывать и выводить COUNT с двух колонок, в которых находятся числа от 1 до 30Имеем следующий код