Article View: pl.comp.bazy-danych
Article #195691Re: PostgreSQL - trigger pomija instrukcje
From: Marek S
Date: Thu, 07 Nov 2019 19:06
Date: Thu, 07 Nov 2019 19:06
36 lines
2983 bytes
2983 bytes
W dniu 2019-11-06 o 21:54, Adam M pisze: > > Wkładanie logiki biznesowej na triggery to bardzo niebezpieczna zabawa - takie rozwiązania stosowało się epoce SQLa łupanego ;-) - prosciej i bezpieczniej przenieść logikę na middleware. Tak, wiem, że niebezpieczna. Dlatego 15x to testuję zanim udostępnię. Owszem, obecnie zwykle przenosi się logikę tego typu do ORMów, a nawet widziałem raz sortowanie wykonane w PHP (!!!) w imię przenoszenia wszystkiego, co możliwe do wykonania na bazie poza nią. Zauważam, że zapanowała wielka awersja do używania baz danych. Zdarza się nawet, że obiekty danych trzyma się w formie plików na dysku (patrz Pimcore). Ja jednak będę trzymał się w/w rozwiązań. Właśnie jestem świadkiem początku upadku sporego przedsięwzięcia - przed czym, u zarania projektu, przestrzegałem team. Oni ślepo ufają nowoczesnym rozwiązaniom, jakie proponujesz. W efekcie, przy ok 25 mln rekordów w bazie, niektóre proste operacje potrafią trwać po kilka minut (klient tyle musi czekać na response interfejsu) zamiast kilkadziesiąt milisekund. Przenoszenie projektu na super wydajne serwery (hosting parę tys. $), stosowanie loadbalacera - odsunęło problem w czasie. Osobiście wygodny ORM stosuję tylko tam, gdzie nie może zaszkodzić bardzo: chyba tylko obsługa formularzy. Zaczynam przenosić rozwiązania nowoczesne, na łupany SQL i już w tej chwili zyskuję min. trzy rzędy wielkości krótsze czasy realizowanych operacji. Jednakże mimo wszystko nie zgodzę się z Tobą, że stosowanie procedur składowych w bazie to przestarzałe podejście. Wręcz przeciwnie: widuję w korporacjach działy administratorów baz danych, którym wręcz zleca się realizowanie procedur składowych, z których korzystają programiści. Programiści nie muszą być świadomi nawet tego, że jakąś kolumnę przeniesiono z jednej tabeli do innej. -- Pozdrawiam, Marek
Technical Details
Message-ID:
<qq1pv0$5et$1@news.icm.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mailReferences:
<qpnjmv$f6a$1@news.icm.edu.pl> <5dc16116$0$543$65785112@news.neostrada.pl> <qpv5oa$57n$1@news.icm.edu.pl> <0363bcb0-290b-42b1-abe1-8cd8a86387ac@googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!.POSTED!not-for-mail From: Marek S <precz@spamowi.com> Newsgroups: pl.comp.bazy-danych Subject: Re: PostgreSQL - trigger pomija instrukcje Date: Thu, 7 Nov 2019 20:06:06 +0100 Organization: ICM, Uniwersytet Warszawski Lines: 36 Message-ID: <qq1pv0$5et$1@news.icm.edu.pl> References: <qpnjmv$f6a$1@news.icm.edu.pl> <5dc16116$0$543$65785112@news.neostrada.pl> <qpv5oa$57n$1@news.icm.edu.pl> <0363bcb0-290b-42b1-abe1-8cd8a86387ac@googlegroups.com> NNTP-Posting-Host: 89-77-183-104.dynamic.chello.pl Mime-Version: 1.0 X-Trace: news.icm.edu.pl 1573153568 5597 89.77.183.104 (7 Nov 2019 19:06:08 GMT) X-Complaints-To: usenet@news.icm.edu.pl NNTP-Posting-Date: Thu, 7 Nov 2019 19:06:08 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.2.1 In-Reply-To: <0363bcb0-290b-42b1-abe1-8cd8a86387ac@googlegroups.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit