mySQL stored procedures and functions
Feb. 26th, 2019 12:30 pmЯ очень хорошо понимаю, почему большая часть логики в mySQL-проектах реализована не в БД, на на application-side.
Потому что реализация хранимых процедур и функций в mySQL донельзя угробищна, например, в части bind-переменных. Особенно после Оракла :)
Даже самое элементарное, вроде SELECT COUNT(*) FROM XXX WHERE ID=:MY_VARIABLE в функции - полная задница, ибо prepared statements разрешены только в процедурах, а из них не вернуть значение.
А потом эти программеры выходят на "большие" СУБД.
Поубывыв бы.
Потому что реализация хранимых процедур и функций в mySQL донельзя угробищна, например, в части bind-переменных. Особенно после Оракла :)
Даже самое элементарное, вроде SELECT COUNT(*) FROM XXX WHERE ID=:MY_VARIABLE в функции - полная задница, ибо prepared statements разрешены только в процедурах, а из них не вернуть значение.
А потом эти программеры выходят на "большие" СУБД.
Поубывыв бы.
no subject
Date: 2019-02-26 09:44 am (UTC)На mySQL я зол сегодня. Нечасто обращаюсь к этой БД, но тут в проекте понадобилось. Не смог сделать простой генератор уникальных случайных ID в виде хранимой процедуры.
Обходных способов дофига, но красиво "по-оракловому" не вышло.
no subject
Date: 2019-02-26 09:58 am (UTC)Причем мне тут пытались доказать, что PL/v8 работает с jsonb-полями в базе эффективнее чем PL/Python и PL/Perl хотя в 11-й версии для Pl/Python и PL/Perl есть нативное отображение jsonb в структуры соответствующего языка без промежуточной сериализации в строку, а для v8 (пока) нет.
no subject
Date: 2019-02-26 10:06 am (UTC)no subject
Date: 2019-02-26 10:49 am (UTC)А что не так с PHP как языком, а не как паттерном применения "вставьте меня в HTML"?
no subject
Date: 2019-02-26 11:02 am (UTC)Более того, почти все серьезные php-фреймоврки вынуждены его де факто изобретать заново, преодолевая сопротивление языка.
Потом там оно как-то бессистемно спроектировано напихали всего подряд, а потом стали пытаться навести на это секьюрити. То есть оно insecure by design, хотя торчит в принципиально hostile среду.
Впрочем, я как-то пытался лет двадцать назад спроектировать secure by design язык для веб-приложений. И понимаю почему, даже если это получится, толпы хомячков этим пользоваться не смогут.
no subject
Date: 2019-02-26 11:12 am (UTC)С безопасностью... Ну, да, это проблема начального дизайна, ещё со времён PHP/FI.
Хомячкам же редко надо что-то серьёзное на бэкенде, а вот возможность встроить в статическую HTML-страничку немножко серверного кода очень заманчива.
no subject
Date: 2019-02-26 11:17 am (UTC)no subject
Date: 2019-02-26 11:21 am (UTC)no subject
Date: 2019-02-27 06:09 am (UTC)no subject
Date: 2019-02-27 07:00 am (UTC)Ведь если у них в базе PL/V8, на бэкэнде nodejs и в браузере понятно что, им не надо переключаться между синтаксисами.
Хотя на мой взгляд, переключаться неудобно между близкими синтаксисами. Вот между perl и python - плохо.
А между make и shell или shell и c - нет. Они разные и решают разные задачи, поэтому переключение естественно.