Autor | Zpráva | ||
---|---|---|---|
TomAsQo Profil |
#1 · Zasláno: 21. 12. 2007, 15:14:28
ahoj,
zaujimalo by ma, ze co je rychlejsie: pouzitie databazy na ziskanie nejakeho udaju, alebo jeho ulozenie do sessionu? alebo sa session tiez *niekde* uklada do databazy? a tym padom je to rovnako rychle, len session viac zabera (ked sa specialne potom musi este prekopirovat niekde...)? ako to s tym sessionom je? diky :) |
||
Nox Profil |
#2 · Zasláno: 21. 12. 2007, 15:25:13 · Upravil/a: Nox
Asi bych to nepopsal tak obsáhle jako: http://www.linuxsoft.cz/article.php?id_article=440
Jinak databázi bych užil pro ukládání věcí, co mají zůstat i po uzavření prohlížeče nebo obsahují nějaký komplexnější data, v opačným případě sessions (drobná data užitá pro uchování dočasné hodnoty) |
||
TomAsQo Profil |
#3 · Zasláno: 21. 12. 2007, 15:50:59 · Upravil/a: TomAsQo
ja mam kusa narocnejsi problem:
chcel by som si vytvorit NUTS-like talker(v Pythone, ale to je teraz nepodstatne) a ma napadlo zoptimalizovat databazu tak, ze v tabulke, kde sa nachadzaju spravy(co komu od koho doslo), tam su nicky userov(kto poslal, komu poslal) vyjadrene v ID-ckach(a tie su potom prepojene s tabulkou pre usrov, kde sa pomocou IDcka zisti prislusny nick) a ja chcem, ze ked napisem: ".tell foo: ahoj" tak userovi "foo" sa napise sprava "Tom@sQo ti povedal: ahoj" atd... ALE aby pri kazdej sprave nemuselo robit 2 Quericka(na transformaciu id<-->nick a potom vypisanie spravy uz s pretransformovanym nickom), tak ma napadlo, ze to budem ukladat do session(v podstate cache) kazdeho usra s tym, ze tam bude ochovane, ktore ID prislucha komu(samozrejme nenatiahne to vsetky vztahy, ale len komu pisem) a tym padom po prvom napisani userovi sa ulozi jeho id a nick do cache a pri dalsom pisani mi to len taha so sessionu...no lenze otazkou je, ze ci potom, ked bude viac ludi prihlasenych, tak ci nebude to zaberat o dost viac pamate a neviem coho vsetkeho na ukor len malickeho, resp. nulloveho zrychlenia... any ideas? |
||
Nox Profil |
#4 · Zasláno: 21. 12. 2007, 15:57:53
No, asi to radši nechám na zkušenějších, ale imho by to asi urychlit mohlo...místo 2 query by to možná šlo řešit poddotazem, ale i tak teda...
|
||
TomAsQo Profil |
#5 · Zasláno: 21. 12. 2007, 15:59:59
jj, da sa do aj "poddotazom", ale imho to je len nepatrne rychejsie... no aj ja som zvedavy na nazori expetov ;)
|
||
Alphard Profil |
#6 · Zasláno: 21. 12. 2007, 16:40:11
v čem je vlastně problém? z tvého příspěvku jsem nepochopil, jestli při zápisu nebo výpisu zprávy
tabulka zpravy by mohla vypadat nějak takhle: id | id_od | id_komu | cas | prectena a při výpisu nicky dodáš pomocí join session bych do toho nepletl |
||
Nox Profil |
#7 · Zasláno: 21. 12. 2007, 17:44:23
Alphard
J, jenže ty ID se pak musí převést na Jména uživatelů a TomAsQo to chtěl urychlit tím, aby se nemuselo vždycky přistupovat do databáze, že by se jména uživatelů načetla do session |
||
Alphard Profil |
#8 · Zasláno: 21. 12. 2007, 17:55:15
Nox
to jsem pochopil, ale když bude chtít vypstat zprávu, musí do databáze a v té chvíli to může zároveň spojit join |
||
Nox Profil |
#9 · Zasláno: 21. 12. 2007, 18:04:54
Alphard
Však se ptá jestli je rychlejší to spojení nebo sessions |
||
TomAsQo Profil |
#10 · Zasláno: 21. 12. 2007, 18:40:00
ahoj,
ako vidim, velmi ste sa zatial nezhodli ;) tak keby vas to zaujimalo, po cca polhodinovej analyze som dospel k zaverom a rieseniam: 1) mohol by som stale ukladatv tabulke pre spravy okrem id cka userov(od a komu) aj ich nicky, ale to by bolo nedostacujuce riesenei, nakolko to je hned proti viacerym zasadam: [code] I) zbytocne duplicitne data - tusim proti hned prvej normalnej forme(a imho patrilo by sa aspon prve 2 dodrziavat) II) potom by som musel v neskorsej verzii ukladat aj veci ako sklonovanie nicku, pohlavie,... duplicitne, proste by to nemalo konca kraja [/code] 2) moznost je ukladat cez SESSIONY, lenze to je tiez nedostacujuce(aj ked lepsie ako 1) ) lebo: [code] I) duplicitne data sa potom budu zas vyskytovat na servri(ked si bude napr so mnou ;-] pisat viac ludi, tak viackrat bude v tej session cache moj nick a jeho id-cko) II) ako tak pozeram, vidim, ze SESSION moze byt ukladany v subore ale aj v databaze...takze dokial by som to neukladal do RAMky, tak aj tak nejake zrychlenie nedosiahnem [/code] 3) nechat cez "poddotaz" je sice pomalsie, ale zasa ked pouzijem prepared statement, tak az take pomale to neje(je to[nanestastie len trosku] rychlejsie, ako 2 izolovane quericka) takze vyhrava moznost 3) ;-) samozrejme dalsie nazory uvitam v diskusii ;) |
||
Mastodont Profil |
#11 · Zasláno: 21. 12. 2007, 18:53:25
Prepared statement se používá hlavně tam, kde je třeba jeden dotaz spouštět vícekrát nebo kde je třeba tuty ochrana proti injektáži. Mmch, vyžaduje dvojí komunikaci s databází, takže na rychlosti moc nezískáš. Jedině že bys použil Postgre, tam je k dispozici pg_query_params :)
|
||
Časová prodleva: 18 let
|
0