🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.objects
Article #14628

Re: wydajność GenericObject

#14628
From: Seweryn Habdank-Wojewódzki
Date: Fri, 21 Apr 2006 14:39
45 lines
2859 bytes
Witam

Marek Wywiał wrote:

> Chodzi mi bardziej o coś w rodzaju BulkMode(??) GenericObject
> aby tworzenie grupy obiektów nie odbywało się przy pomocy osobnych
> zapytań (jeden select na każdy obiekt) tylko jedno zapytanie
> zwracające dane dla wielu obiektów naraz, a następnie stworzenie i
> zwrócenie takiej załadowanej już kolekcji.

To już coraz bardziej nie kapuje.

> W praktyce wygląda to tak, że wejście w kategorię produktów na
> stronie (zawiera 2-10 produktów) jest szybkie i nie obciaża serwera.
> 
> Natomiast w przypadku generowaniu spersonalizowanego cennika ( ponad
> 400 pozycji) trwa to długo, i obciąża maszynę na tyle mocno, że
> kolejne zapytania (lub co gorsza cenniki w tym czasie) przekraczają
> czas wykonania php.

A gdybyś po prostu konstruował w locie zapytanie, poprzez formowanie "stringa".
Czyli poprostu jeśli tych ID jest dużo, to grupujesz je po 10, 15 ładujesz do
konstruowanego wlocie stringa (który jest zapytaniem SQL) i to wysyłasz do
bazy danych. Ladowanie do stringa 400 numerów ID też jest chyba przyciężkawe,
więc lepiej zrobić jakieś takie rozwiązanie pośrednie. Czyli pytanie w blokach
po X numerów ID.

Coś takiego:

masz listę ID_list i w niej ID'ki. Ja tniesz na K grup po N elementów i
ostatnia może być albo trochę większa niż N albo mniejsza niż N, to zależy
jaką strategią uznajesz czy pozwalasz do ostatniej dołączyć restówkę, czy
resztówka jest osobno. Można to zrobić inteligentnie i jeśli restówka jest >
N/2 to jest osobno jeśli mniejsza to dołączasz ją do ostatnije grupy N
elementowej.

Potem tworzysz automatycznie zapytania SQL z tymi ID'kami z pociętej listy i
wio każde zapytanie jest relatywnie krótkie i jest ich relatywnie niedużo.

Pozdrawiam.

-- 

|\/\/|   Seweryn Habdank-Wojewódzki
`\/\/   
Technical Details
Message-ID: <e2aqno$a99$1@tkdami.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!news.tkdami.net!news.tkdami.pl!not-for-mail
References: <1145621432.199758.292090@j33g2000cwa.googlegroups.com> <e2ajvu$1e4$1@tkdami.pl> <1145626731.132393.85910@i39g2000cwa.googlegroups.com>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.nask.pl!news.nask.org.pl!newsfeed.tpinternet.pl!news.tkdami.net!news.tkdami.pl!not-for-mail
From: Seweryn Habdank-Wojewódzki <habdank@gmail.com>
Newsgroups: pl.comp.objects
Subject: Re: wydajność GenericObject
Date: Fri, 21 Apr 2006 16:39:19 +0200
Organization: VectraNet Oswiecim
Lines: 46
Message-ID: <e2aqno$a99$1@tkdami.pl>
References: <1145621432.199758.292090@j33g2000cwa.googlegroups.com> <e2ajvu$1e4$1@tkdami.pl> <1145626731.132393.85910@i39g2000cwa.googlegroups.com>
Reply-To: habdank@gmail.com
NNTP-Posting-Host: 82.139.21.12
Mime-Version: 1.0
X-Trace: tkdami.pl 1145630264 10537 82.139.21.12 (21 Apr 2006 14:37:44 GMT)
X-Complaints-To: usenet@news.tkdami.pl
NNTP-Posting-Date: Fri, 21 Apr 2006 14:37:44 +0000 (UTC)
User-Agent: KNode/0.9.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit