Stránkovaní pomocí seek() – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Stránkovaní pomocí seek() – PHP – Fórum – Programujte.comStránkovaní pomocí seek() – PHP – Fórum – Programujte.com

 

hrach
~ Redaktor
+1
Boss
11. 9. 2008   #1
-
0
-

Co si myslíte o tom, když místo klasického limit offset použiji mysql_data_seek() - http://cz.php.net/manual/en/function.mysql-data-seek.php - plus následné fetchovaní jen potřebného?

Výkonově to bude asi slabší. Použili jste někdy tuto techniku? Výhoda je, že pokud provadím nějaký "asociační post-render" (= na jeden řádek použiji jich více), pak bych s limitet teda popravdě nevystačil...

Nahlásit jako SPAM
IP: 193.179.169.–
http://jan.skrasek.com@hrachcz – webdeveloper
KIIV
~ Moderátor
+43
God of flame
12. 9. 2008   #2
-
0
-

pockej az tam bude 10000x cca 20kB dat a par uzivatelu naraz ... nejen ze databaze z tebe bude mit radost... furt posilat celou tabulku je velice "efektivni" lepsi uz snad bude spis ty polozky projit a najit ty asociace?
ostatne kdyz bys mel klice a pouzil left join tak by ti to mohlo hodit treba do druhy urovne v jednom radku...
resp kdyby si tam mel dalsi tabulku kde bys mel vsechny spojitosti co k cemu patri :D

Nahlásit jako SPAM
IP: 80.250.27.–
Program vždy dělá to co naprogramujete, ne to co chcete...
12. 9. 2008   #3
-
0
-

Pouzivat vice radku na neseni jednoho udaje je blbost. Databaze jsou navrzene tak aby jeden udaj byl nesen jednim radkem a tak jsou nejefektivnejsi.

Prace s celous skupinou vysledku muze fungovat tak do par set zaznamu, pak to zacne byt neunosne pomale a pametove narocne. Tim samozrejme nerikam, ze limity jsou samospasitelne. Treba v tomhle ti ani limit nepomuze:

SELECT * FROM tabulka ORDER BY RAND() LIMIT 1

Zaklad je stejne mit dobre navrzene vztahy mezi tabulkami a podminky.

Nahlásit jako SPAM
IP: 78.102.164.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
KIIV
~ Moderátor
+43
God of flame
12. 9. 2008   #4
-
0
-

To CommanderZ : no on mel asi mozna na mysli neco jako diskuzni forum se stromovou strukturou...

Nahlásit jako SPAM
IP: 80.188.94.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hrach
~ Redaktor
+1
Boss
12. 9. 2008   #5
-
0
-

To CommanderZ : He, teda, kdepak. Myslel jsem vztah hasMany...
select posts.*, comments.* from posts left join comments on posts.id = comments.post_id where post.id = 15

Nahlásit jako SPAM
IP: 195.113.171.–
http://jan.skrasek.com@hrachcz – webdeveloper
12. 9. 2008   #6
-
0
-

Tak ted jsem u ani jedno z vas nepochopil, co se mi snazite rict :)

To KIIV: To ma byt obhajoba toho kdyz vice zaznamu nese jeden udaj? Ja uz stromove forum delal a nevim o tom, ze by to tam bylo nekde potreba.

To hrach: A co se snazis rict timhle? Sry ale fakt mi to nedochazi :)

Nahlásit jako SPAM
IP: 78.102.164.–
Prosím, jestli potřebujete s něčím poradit,zeptejte se na fóru. Jakýkoliv bezdůvodný pokus mě kontaktovat skončí okamžitým přidáním do ignore listu![br][br] Současný počet osob, které to nepochopily: 7
hrach
~ Redaktor
+1
Boss
12. 9. 2008   #7
-
0
-

Teoreticky. Mam dotaz na vyber 10 postu. Nastavim limit 10, vse je ok. Chci dotaz rozsirit na vyber 10 postu vcetne jejich komentaru. Mam problem. Limit bude pocitat vsecky radky. Tedy, pokud prvni post bude mit 10 komentu, pak diky limitu uz nevyberu ani vic postu. Tento problem by odpadl pri pouziti seek() -> respektive tim, ze fetchuji radky jiz "asociovane".

Nahlásit jako SPAM
IP: 193.179.169.–
http://jan.skrasek.com@hrachcz – webdeveloper
bukaj0
Věrný člen
12. 9. 2008   #8
-
0
-

hrach
pokud provadím nějaký "asociační post-render" (= na jeden řádek použiji jich více) … Chci dotaz rozsirit na vyber 10 postu vcetne jejich komentaru.
Proč nepoužít 2 dotazy – proč nejdříve nevybrat posty a potom komentáže k nim? Proč to rvát celé do jednoho?

Nahlásit jako SPAM
IP: 85.70.13.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
KIIV
~ Moderátor
+43
God of flame
12. 9. 2008   #9
-
0
-

To CommanderZ : nikde v jeho uvodu nemuzu najit ani zminku o vice zaznamech nesoucich jeden udaj...
asi sem slepej

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
hrach
~ Redaktor
+1
Boss
12. 9. 2008   #10
-
0
-

To bukaj : proc? protoze aby to byly dva sql dotazy, pak musim projit vysledek, a udelat dalsi dotaz na comenty s temi post id, ktere jsem si jiz vycucl. posleze opet projdu vysledek, hle, priradit odpovidajici komenty k odpovidajicim postum a je hotovo. jak oproti prvnimu reseni jednodusi. ANO, NE? nevim, me proste toto nepritahuje.

Ale zpet k tematu, co si myslite o tom seek(). Kdyz sem dnes nad tim premyslel... tak se dosel k zaveru, ze db si musi stejne nejprve vsechny odpovidajici zaznamy najit, a to kvuli razeni....

Nahlásit jako SPAM
IP: 193.179.169.–
http://jan.skrasek.com@hrachcz – webdeveloper
bukaj0
Věrný člen
12. 9. 2008   #11
-
0
-

hrach
jak oproti prvnimu reseni jednodusi. ANO, NE?
Podle mě áno, podle mě je to i správnější a méně to zatěžuje databázi :o) U řešení vybrat to sakumprdum mě zase moc nepřitahuje to si hlídat, co teď mám, či nemám za post a nějak nechápu, jak by v tom seekování mohlo pomoci? Efektivní použití síkování by znamenalo si nejdříve vybrat, kolik má který post komentářů, ne? Nebo máš na to nějaký lepší fígl? :o)

Navíc, pokud jde o to vybrat posty a k nim komentáře, nebudeme přeci vybírat komentáře s informacemi o postu, ne? (Čistě teoreticky, jeden záznam v relaci odpovídá jednomu objektu. Ty vlastně chceš vybrat objekty typu Post, které budou mít, řekněme, vlasnost comments, která bude pole komentářů (objektů typu Comment). Ale když se to dá do jednoho dotazu, vyleze z toho vlastně objekt typu CommentWithInformationsAboutPost, a ne požadované posty.)

Řekl bych, že výkonostně to bude ztrácet při výběru hodně „širokých“ tabulek, či velké sady dat – bude se přenášet hodně redundancí.

A když budeš chtít vybrat posty s informacemi o jejich autorech (autorů může být více) společně s komentáři (komentářů samozřejmě také může být více) a odkazovat na komentáře, které na něj odpovídají (těch samozřejmě může být také více), budeš to všechno spojovat do jedné obrovské relace – hlavně aby to byl jeden dotaz?

Nahlásit jako SPAM
IP: 85.70.13.–
Jak se správně ptát? -> http://www.hash.cz/inferno/otazky.html[br][br] Po programování je člověk hladovej.
hrach
~ Redaktor
+1
Boss
13. 9. 2008   #12
-
0
-

To bukaj : byl to priklad. Jeho smysl jiz ponechme. Tedy, uzavreme, zrejme seekovani nebude idealni pri vetsich tabulkach.

Pokud by mel nekdo nejake "zmerene" veci, ci dalsi zkusenosti, necht se podeli :)

Nahlásit jako SPAM
IP: 193.179.169.–
http://jan.skrasek.com@hrachcz – webdeveloper
KIIV
~ Moderátor
+43
God of flame
13. 9. 2008   #13
-
0
-

pri vetsich tabulkach a pokud tam prijde vic dotazu za nejakej kratkej cas

Nahlásit jako SPAM
IP: 77.237.136.–
Program vždy dělá to co naprogramujete, ne to co chcete...
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 9 hostů

Podobná vlákna

Strankovani — založil D-Fox

Stránkování — založil JMM

Strankovani — založil FrEnkLiN

Chyba v stránkování — založil martin

DATALIST STRANKOVANI — založil kironet

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý