Zadejte hledaný výraz...

Stránkování v PHP

hm
verified
rating uzivatele
(20 hodnocení)
23. 12. 2008 03:54:59
Napsal toshi;119802
Jo vidis to, ja delam s daleko vetsima databazema (neweb), ale i presto mluvis o necem jinym - sam rozdil casove narocnosti mezi select * a select column,column,column... je mizivy at uz ho uplatnujes nad jakkoliv velkou tabulkou. Jak bylo receno vyse, lisi se pouze tim luxusem ze ty sloupce do dotazu sama db doplni - ostatne ja to v zapalu boje o argumenty zkousel a opravdu je rozdil nula nic.
rozdil v prenosech je znat a vic nez dost...
Napsal toshi;119802
Tak to si ale hodne spatnej programator jestli ti dotazy na webu trvaji pul sekundy. Muzeme se bavit jestli za to muze navrh dotazu nebo databaze, ale vez ze hvezdicka na to bude mit pramaly vliv...
to byl jen priklad... samozrejme ze delky dotazu se pocitaji v milisekundach...
pokud chces obhajovat hvezdicku (tak to totiz vypada), muzu soudit pouze to ze o tom nicmoc nevis :)
23. 12. 2008 03:54:59
https://webtrh.cz/diskuse/strankovani-v-php/strana/3#reply12607
toshi
verified
rating uzivatele
(4 hodnocení)
23. 12. 2008 04:24:07
Napsal grovik;172291
Jiste pri DB ktera ma 20 Mb to nikdo nepozna, jenze kdyz budes mit db o rozsahu rekneme 100Gb tak sis prave zadelal na totalni zasek.
Pockej, ale ja to myslel trosku jinak...pokud mas treba tabulku o trech sloupcich a potrebujes vytahnout vsechny tri tak
SELECT sloupec1,sloupec2,sloupec3 FROM db...;
SELECT * FROM db...;
budou casove trvat uplne stejne i nad 100GB databazi, nebo se pletu?
Napsal AlesiBoss;172294
pokud chces obhajovat hvezdicku (tak to totiz vypada), muzu soudit pouze to ze o tom nicmoc nevis :)
Ale mozna o tom i prd vim :) nicmene ji neobhajuju, ale sam ji dost casto pouzivam protoze vyjmenovavani sloupcu prudi(cas, chyby...) a navic vykonovej rozdil neni ve vetsine prakticky znatelnej...az pokud by to melo smysl tak bych to resil, zadna magie.
23. 12. 2008 04:24:07
https://webtrh.cz/diskuse/strankovani-v-php/strana/3#reply12606
grovik
verified
rating uzivatele
23. 12. 2008 15:43:17
Napsal toshi;172299
Pockej, ale ja to myslel trosku jinak...pokud mas treba tabulku o trech sloupcich a potrebujes vytahnout vsechny tri tak
SELECT sloupec1,sloupec2,sloupec3 FROM db...;
SELECT * FROM db...;
budou casove trvat uplne stejne i nad 100GB databazi, nebo se pletu?
Tak samozrejme v tomhle pripade rozdil neni protoze DB stroj si to samozrejme prevede hvezdicka je jen zastupnej znak. Znamena to vsechny sloupce. Optimalizace na urovni DB stroje si to prevede na vsechny tri sloupce.
Faktem ovsem je ze ve chvili kdy se zacne pouzivat LIKE tak to neumerne zatezuje masinu. Cim vic sloupcu tim vetsi zatez. Takze hvezdicka znamena TOTALNI zasleh. Taky je to zavisle na Indexech cim vic jich tam je udelanych tim jsou tyhle LIKE selecty rychlejsi.
Jinak zaklad optimalizace je co nejmensi presuny dat mezi Apachem a MySQL (SQL obecne) a dalsi veci je co nejmene zatezovat DB prohledavanim a delat co nejpresnejsi specifikace pri WHERE.
23. 12. 2008 15:43:17
https://webtrh.cz/diskuse/strankovani-v-php/strana/3#reply12605
toshi
verified
rating uzivatele
(4 hodnocení)
23. 12. 2008 16:37:44
Napsal grovik;172599
Faktem ovsem je ze ve chvili kdy se zacne pouzivat LIKE tak to neumerne zatezuje masinu. Cim vic sloupcu tim vetsi zatez. Takze hvezdicka znamena TOTALNI zasleh. Taky je to zavisle na Indexech cim vic jich tam je udelanych tim jsou tyhle LIKE selecty rychlejsi.
Tak to jsem netušil, zajímavé. Jsi studoval databáze nebo to máš z praxe?
23. 12. 2008 16:37:44
https://webtrh.cz/diskuse/strankovani-v-php/strana/3#reply12604
grovik
verified
rating uzivatele
24. 12. 2008 00:02:55
Napsal toshi;172630
Tak to jsem netušil, zajímavé. Jsi studoval databáze nebo to máš z praxe?
To je praxe i studium :-).
Problem je v tom ze poziti LIKE znamena ze SQL musi projit vsechny sloupce, ktere se mu predhodi. Pokud se mu predhodi vsechny, je to skutecne ta nejpomalejsi vec co clovek muze udelat.
Pokud se hleda v indexovanych sloupcich je to lepsi. Na ORACLU to je lepsi dokonce o nejakych 40%.
Samozrejme se to projevuje umerne velikosti tabulky na MySQL tabulce o velikosti par Mb to je celkem jedno, na ORACLU o velikosti 150-200Gb je to primo znicujici :-).
24. 12. 2008 00:02:55
https://webtrh.cz/diskuse/strankovani-v-php/strana/3#reply12603
TeSi
verified
rating uzivatele
(4 hodnocení)
24. 12. 2008 14:23:08
Už se s tím seru pár hodin a nevím jak na to. Neudělal by jste mi to stránkování diskuze na konkrétním kódu? Jen dodám, že se nesmí řídit počítání dle ID (naplatí zde, že od ID 10 do ID 20 je 10 řádku..je jich tam jen pár, protože některá ID jsou promazána. Nevím, zda se to vůbec dá nějak udělat.
ZDE JE KÓD:

Přidat příspěvek

include ("db.php");
mysql_query("SET character_set_results=cp1250");
mysql_query("SET character_set_connection=cp1250");
mysql_query("SET character_set_client=cp1250");
$query = "select * from dotazy order by datum desc, dotazyid desc";
$result = mysql_query($query);
$num_results = mysql_num_rows($result);
while($row=mysql_fetch_array($result))
{
$pole = explode ("-", $row);
$datum = "$pole.$pole.$pole";
if (strstr($row, "<") || strstr($row, "") || strstr($row, "/>") || strstr($row, "<") || strstr($row, "") || strstr($row, "/>") || strstr($row, "<") || strstr($row, "") || strstr($row, "/>") || strstr($row, ".it") || strstr($row, "it") || strstr($row, "gamehack") || strstr($row, "mpcdownloads") || strstr($row, "analka") || strstr($row, ".cz") || strstr($row, ".com") || strstr($row, ".net") || strstr($row, ".co.uk") || strstr($row, "") || strstr($row, "<") || strstr($row, ">") || strstr($row, "www") || strstr($row, "debil") || strstr($row, "www") || strstr($row, "WWW"))
{}
else
{
echo "

".$hodnost." ".$row." ".$datum." ".$row." Odpovědět

".$row."

";
}
}
?>
24. 12. 2008 14:23:08
https://webtrh.cz/diskuse/strankovani-v-php/strana/3#reply12602
jirin
verified
rating uzivatele
(5 hodnocení)
24. 12. 2008 15:23:06
Napsal TeSi;173201
Už se s tím seru pár hodin a nevím jak na to. Neudělal by jste mi to stránkování diskuze na konkrétním kódu? Jen dodám, že se nesmí řídit počítání dle ID (naplatí zde, že od ID 10 do ID 20 je 10 řádku..je jich tam jen pár, protože některá ID jsou promazána. Nevím, zda se to vůbec dá nějak udělat.
ZDE JE KÓD:

Přidat příspěvek

include ("db.php");
mysql_query("SET character_set_results=cp1250");
mysql_query("SET character_set_connection=cp1250");
mysql_query("SET character_set_client=cp1250");
$query = "select * from dotazy order by datum desc, dotazyid desc";
$result = mysql_query($query);
$num_results = mysql_num_rows($result);
while($row=mysql_fetch_array($result))
{
$pole = explode ("-", $row);
$datum = "$pole.$pole.$pole";
if (strstr($row, "<") || strstr($row, "") || strstr($row, "/>") || strstr($row, "<") || strstr($row, "") || strstr($row, "/>") || strstr($row, "<") || strstr($row, "") || strstr($row, "/>") || strstr($row, ".it") || strstr($row, "it") || strstr($row, "gamehack") || strstr($row, "mpcdownloads") || strstr($row, "analka") || strstr($row, ".cz") || strstr($row, ".com") || strstr($row, ".net") || strstr($row, ".co.uk") || strstr($row, "") || strstr($row, "<") || strstr($row, ">") || strstr($row, "www") || strstr($row, "debil") || strstr($row, "www") || strstr($row, "WWW"))
{}
else
{
echo "

".$hodnost." ".$row." ".$datum." ".$row." Odpovědět

".$row."

";
}
}
?>
TJ nejaky moc diovky kod, kasli na to, stahni Zend_Paginator a ten to odstrankuje vse za tebe:) Muzes tam poslat i klasicky array - co ti vyplivne mysql_fetch*
24. 12. 2008 15:23:06
https://webtrh.cz/diskuse/strankovani-v-php/strana/3#reply12601
Svata
verified
rating uzivatele
(3 hodnocení)
26. 12. 2008 15:55:37
Stránkování jsem řešil zatím vždy jednotlivě.
Vždy jsem měl různou strukturu URL a jiné tabulky v databázi.
Stejně je to vždy maximálně na 15 minut. A navíc, pokud je to tvořeno
neuniverzálně, mělo by to být značně rychlejší.
26. 12. 2008 15:55:37
https://webtrh.cz/diskuse/strankovani-v-php/strana/3#reply12600
Honzaa
verified
rating uzivatele
26. 12. 2008 21:55:16
Stránkování jsem si vytvořil vlastní a bez použití databáze.
26. 12. 2008 21:55:16
https://webtrh.cz/diskuse/strankovani-v-php/strana/3#reply12599
David Grudl
verified
rating uzivatele
7. 1. 2009 17:35:50
Napsal grovik;172599
Faktem ovsem je ze ve chvili kdy se zacne pouzivat LIKE tak to neumerne zatezuje masinu. Cim vic sloupcu tim vetsi zatez. Takze hvezdicka znamena TOTALNI zasleh. Taky je to zavisle na Indexech cim vic jich tam je udelanych tim jsou tyhle LIKE selecty rychlejsi.
Operátor LIKE pracuje jen se sloupcem, kterého se týká podmínka. Počet vypsaných sloupců nemá žádný vliv. Stejně tak problématika indexů je složitější, rozhodně neplatí "víc indexu = rychlejší". Dobré počtení třeba u Jakuba http://php.vrana.cz/ukazka-pouziti-indexu.php
7. 1. 2009 17:35:50
https://webtrh.cz/diskuse/strankovani-v-php/strana/3#reply12598
head
verified
rating uzivatele
(3 hodnocení)
14. 1. 2009 18:10:49
Este nieco k strankovaniu: http://www.mrhead.sk/2009/01/strankovanie-vystupu-v-php/
Mam na to vlastnu triedu, ktora sa o to stara...
14. 1. 2009 18:10:49
https://webtrh.cz/diskuse/strankovani-v-php/strana/3#reply12597
Věděl by někdo o nějakém pěkném příkladu s popisem na stránkování za pomoci JS? Data načítaná normálně z MySQL jednalo by se o cca 10-20 řádků na jeden div. Nerad bych ale, aby se mi načetlo vše najednou. Jedná se mi spíše o ulehčení od přenosu okolních dat a zbytečné scrollování navíc.
Zkoušel jsem Googlit, ale narazil jsem pouze na spoustu frameworků, a balastu. Pracuji momentálně na svém menším redakčním systému založeném na šablonovacím systému pet. Nechci se učit žádný složitý framework z toho důvodu, že mám lepší přehled o tom co jak funguje a zároveň se učím a poznávám nové věci. Dalším důvodem je dobrý pocit z toho, že jsem to napsal/pochopil sám a není to jen sprostě obšlehnutý, neošetřený kód o kterém nic nevím. Předem děkuji za reakce, odpovědi a odkazy. :)
S pozdravem Malej (PS: Za svou češtinu neručím...)
30. 5. 2010 20:48:39
https://webtrh.cz/diskuse/strankovani-v-php/strana/3#reply12596
Pro odpověď se přihlašte.
Přihlásit