🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

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

#232435
From: Marek S
Date: Thu, 25 Apr 2019 21:14
72 lines
4285 bytes
W dniu 2019-04-24 o 20:01, Wojciech Bancer pisze:

> Nie, nie, nie, nie. Nie zrozumiałeś. To co napisałem to:
> Zamiast przyspieszyć _moze_ 2x procesy w bazie np. przez dołożenie trigerów,
> wolę mieć opcję stabilnej obsługi zarówno 10, 100 jak i 1000+ userów "na raz")
> bez straty wydajności, w zależności od potrzeb, przez auto-skalowalne rozwiązania.

Ok, czuję intencję.
BTW
Jak tworzysz podkreślenia? Próbowałem _ przed i za, próbowałem __ i 
kiszka. Być może więcej wyrazowych wyrażeniach próbowałem. Nie pamiętam już.

>> Ja preferuję inne podejście:
>> zoptymalizować bazę, a gdy już więcej się nie da - wtedy zająć się
>> infrastrukturą sprzętową. Tego nie zmienię w sobie.
> 
> No i właśnie. Projektujesz system który "ma ścianę" i to dość blisko.

Czy jest coś w tym nagannego, że z wyciskam z serwera max. ilość 
operacji/s? Może inaczej: proponujesz pousuwać wszelkie optymalizacje z 
bazy, jak np. indeksy, po to by być daleko od ściany i mieć świadomość, 
że można dużo poprawić w tejże bazie?

> Problem w tym, że na razie "beztroski" to wydajesz się Ty, w angażowaniu
> ORMa bez zrozumienia idei za nim stojących.

Nie beztroski lecz uczący się. Jednakże już w tym wątku dostałem 
wytyczne jak "naprawić" ideę ORM w zakresie usuwania/aktualizacji 
rekordów poprzez banalnie proste zabiegi na udostępnionych przez ORM 
mechanizmach. Mam na myśli łatanie niedostatków poprzez stosowanie 
querybuildera etc.

> I nawet nie chciało Ci się zajrzeć do manuala tegoż ORMa, prawda?
> Bo byś znalazł rozdziały dot. wydajności, batch processingu itp.

Jestem w trakcie czytania dokumentacji. Na bieżąco pytam o to, czego nie 
rozumiem. Wyssałeś z palca moje podejście pomimo iż w poprzednich 
wątkach wyraźnie pisałem iż raczkuję dopiero i potrzebuję podpowiedzi. 
Otrzymałem, doczytam i wdrożę w testowym projekcie.

>> To ja wiem. To jest korzystanie z SQLa, do którego z awersją podchodzisz
>> r=traktując go jako raka w ORMie.
> 
> Gdzie Ty tam widzisz SQL? o.O
> To jest wg Ciebie SQL?
> ---
> $qb = $em->createQueryBuilder();
> $qb->delete('Services', 's');
> $qb->where('s.project = :project');
> $qb->setParameter('project', $project);
> ---

Kompletnie nie znam querybuildera a widzę (być może fałszywie) to, co 
poniżej. Zgaduję, że Services odnosi się do nazwy entity a ta do tabeli 
o tej samej nazwie. Więc:

"DELETE FROM services s WHERE s.project=$project"

Czy źle odczytuję powyższe?

> Ciekawe. Jaki dialekt wiesz może?

Coś w rodzaju mowy od tyłu: niby słowa są znane... ale takie trochę inne.

Ale zgodziłem się już wcześniej, że jest to użyteczne narzędzie, które 
pozwoli mi na unikniecie kosztownych DELETE'ów. Oczywiście po zapoznaniu 
się wcześniejszym z batch processingiem. Bo być może to też będzie 
świetnym mechanizmem do optymalizacji zapytań hurtowych.

-- 
Pozdrawiam,
Marek
Technical Details
Message-ID: <q9t7vj$4ol$1@node2.news.atman.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
References: <q9foak$p72$1@node2.news.atman.pl> <slrnqboo9s.e87.wojciech.bancer@pl-test.org> <5cbf10a8$0$482$65785112@news.neostrada.pl> <q9ngu2$rla$1@node2.news.atman.pl> <szccfmi95el5$.xlp4ie6tp398.dlg@40tude.net> <q9nrgf$d0c$1@node1.news.atman.pl> <slrnqbuueh.2ui0.wojciech.bancer@pl-test.org> <q9q6ee$a2s$1@node2.news.atman.pl> <slrnqc194m.2amm.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!newsfeed2.atman.pl!newsfeed.atman.pl!.POSTED!not-for-mail
From: Marek S <precz@spamowi.com>
Newsgroups: pl.comp.lang.php
Subject: Re: Symfony 4 - jak projektować bazę danych
 pod Doctrine?
Date: Thu, 25 Apr 2019 23:14:18 +0200
Organization: ATMAN - ATM S.A.
Lines: 72
Message-ID: <q9t7vj$4ol$1@node2.news.atman.pl>
References: <q9foak$p72$1@node2.news.atman.pl> <slrnqboo9s.e87.wojciech.bancer@pl-test.org> <5cbf10a8$0$482$65785112@news.neostrada.pl> <q9ngu2$rla$1@node2.news.atman.pl> <szccfmi95el5$.xlp4ie6tp398.dlg@40tude.net> <q9nrgf$d0c$1@node1.news.atman.pl> <slrnqbuueh.2ui0.wojciech.bancer@pl-test.org> <q9q6ee$a2s$1@node2.news.atman.pl> <slrnqc194m.2amm.wojciech.bancer@pl-test.org>
NNTP-Posting-Host: 89-70-94-204.dynamic.chello.pl
Mime-Version: 1.0
X-Trace: node2.news.atman.pl 1556226867 4885 89.70.94.204 (25 Apr 2019 21:14:27 GMT)
X-Complaints-To: usenet@atman.pl
NNTP-Posting-Date: Thu, 25 Apr 2019 21:14:27 +0000 (UTC)
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1
In-Reply-To: <slrnqc194m.2amm.wojciech.bancer@pl-test.org>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit