🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.php
Article #232394

Re: Symfony 4 - jak projektować bazę danych pod Doctrine?

#232394
From: Roman Tyczka
Date: Wed, 24 Apr 2019 06:54
35 lines
3109 bytes
On Tue, 23 Apr 2019 22:31:12 +0200, Wojciech Bancer wrote:

>> Po drugie, jak wspomniałem przy okazji codziennych importów po pół 
>> miliona rekordów. Jeden mój ruch i prawie dwukrotnie szybciej proces 
>> zaczął działać. A pewnie gdyby przeprojektować system, to i z 10-krotnie 
>> dałoby się przyspieszyć.
> 
> Myślę że Twoja praca kosztowała więcej niż koszt działania serwera
> przez te kilka godzin. No i jak sobie z firmy pójdziesz, to ktoś
> będzie musiał rozgryzać "dlaczego magicznie coś się dzieje" na bazie,
> skoro w kodzie aplikacji nic nie ma.

Dziwne to wnioskowanie. Dlaczego treść triggerów i sp nie traktujesz jako
kod źródłowy systemu? Tak samo struktura bazy to kod źródłowy aplikacji.
Niektóre systemy są pisane w kilku językach programowania, każdy ten
fragment jest częścią systemu.
Druga sprawa z tym unikaniem triggerów w celu oszczędzania wydajności to
imho właśnie zabijanie wydajności i spójności. Trigger przy danych wykona
się dzięsiątki razy szybciej niż kod gdzieś w oddali, zwłaszcza
interpretowany. Ja rozumiem, że np. jak sobie rozrzucisz ten kod po 10
serwerach aplikacyjnych to one go wykonają w sumie szybciej, ale wtedy
tracisz fundamentalną cechę bazy czyli ACID, bo wszystko to wykona się w
osobnych transakcjach bez gwarancji niepodzielności i spójności. A jeszcze
co do transakcji to kluczowe jest by transakcje aktualizujące dane były jak
najkrótsze, wykorzystanie triggera skraca ten czas, użycie kodu na zewnątrz
wydłuża, co ciągnie za sobą problemy z blokowaniem zasobów bazy i dalsze
spadki wydajności.
Coś za coś, nie jest tak, że jedno jest lepsze niż drugie i droga bez
triggerów jest słuszna. Być może jest tak jak Marek sugeruje, że na rynku
brakuje fachowców od baz danych i się to załatwia ORMami, nie rozumiejąc co
się w zamian traci.

-- 
pozdrawiam
Roman Tyczka
Technical Details
Message-ID: <19e3n4frifzjg$.dlg@tyczka.com>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
References: <q9foak$p72$1@node2.news.atman.pl> <slrnqboo9s.e87.wojciech.bancer@pl-test.org> <q9lb2m$rq3$1@node2.news.atman.pl> <slrnqbtc0m.106s.wojciech.bancer@pl-test.org> <q9nf0j$pso$1@node2.news.atman.pl> <slrnqbuic6.11h6.wojciech.bancer@pl-test.org> <q9nqvt$cgp$1@node1.news.atman.pl> <slrnqbutgg.2ui0.wojciech.bancer@pl-test.org>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!goblin1!goblin.stu.neva.ru!newsfeed.neostrada.pl!unt-exc-01.news.neostrada.pl!unt-spo-b-01.news.neostrada.pl!news.neostrada.pl.POSTED!not-for-mail
From: Roman Tyczka <noemail@because.no>
Subject: Re: Symfony 4 - jak projektować bazę danych
 pod Doctrine?
Newsgroups: pl.comp.lang.php
User-Agent: 40tude_Dialog/2.0.15.84
MIME-Version: 1.0
Sender: romek@tyczka.no.found
References: <q9foak$p72$1@node2.news.atman.pl> <slrnqboo9s.e87.wojciech.bancer@pl-test.org> <q9lb2m$rq3$1@node2.news.atman.pl> <slrnqbtc0m.106s.wojciech.bancer@pl-test.org> <q9nf0j$pso$1@node2.news.atman.pl> <slrnqbuic6.11h6.wojciech.bancer@pl-test.org> <q9nqvt$cgp$1@node1.news.atman.pl> <slrnqbutgg.2ui0.wojciech.bancer@pl-test.org>
Date: Wed, 24 Apr 2019 08:54:57 +0200
Message-ID: <19e3n4frifzjg$.dlg@tyczka.com>
Lines: 35
Organization: Telekomunikacja Polska
NNTP-Posting-Host: 94.75.90.137
X-Trace: 1556088898 unt-rea-a-02.news.neostrada.pl 536 94.75.90.137:1502
X-Complaints-To: abuse@news.neostrada.pl
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit