Autor | Zpráva | ||
---|---|---|---|
caterpilar Profil * |
#1 · Zasláno: 17. 11. 2006, 22:41:09
Ahoj, mám dotaz.
Delší dobu dělám web v kombinaci php a MySQL. Poslední dobou se mi zdá, že stránky jsou čím dál pomalejší. Je nějaké aleternativní metoda jak urychlit načítání stránek? Díky Martin |
||
souki Profil |
#2 · Zasláno: 17. 11. 2006, 22:49:23
problém asi nebude v použití technologii, ale přímo v naprogramování.... třeba na databázi nemáš indexy a podobně...
|
||
caterpilar Profil * |
#3 · Zasláno: 17. 11. 2006, 23:03:35
No tím to asi nebude. Indexy mám všude kde jsou zapotřebí. A navíc v příkazech SELECT obsahujících WHERE, MAX(), MIN(), JOIN a v některých případech ORDER BY a pod se INDEX využívá automaticky.
Co myslíš tím a podobně....? |
||
Casero Profil |
#4 · Zasláno: 17. 11. 2006, 23:31:19
caterpilar
Třeba je načase zapřemýšlet o lepší hostu??, |
||
Časová prodleva: 4 dny
|
|||
Black Wolf Profil |
#5 · Zasláno: 21. 11. 2006, 11:41:39
MySQL je sama o sobě celkem rychlá, stejně jako PHP (samozřejmě je to interpretovaný jazyk, takže cgi v Cčku atp. bude rychlejší), takže problém opravdu bude někde jinde. Může to být pomalým serverem (v případě provádění hodně náročných operací nebo vysoké návštěvnosti), ale spíš to bude v programu.
Doporučuji optimalizovat algoritmy, SQL dotazy a strukturu databází a využít nějakou formu cache. Přechod na jiné technologie bývá ve většině případů dražší než optimalizace, případně pořízení výkonnějšího zázemí - ono přepsat něco do jiného jazyka nebývá otázka pár minut. |
||
djlj Profil |
#6 · Zasláno: 21. 11. 2006, 11:51:32 · Upravil/a: djlj
caterpilar
To není jen o indexech. Můžeš mít databázi špatně navrženou, nebo špatně strukturované dotazy. |
||
ronnie Profil |
#7 · Zasláno: 21. 11. 2006, 11:51:43
Cachovaní, cachování a cachování...nevím, jak jsi na tom s PHP, ale doporučuji např. postup popsaný na http://php-weblog.pifik.com/skladiste/206/Jak-si-vytvorit-univerzalni- cache/
|
||
nothrem Profil |
#8 · Zasláno: 21. 11. 2006, 14:35:26 · Upravil/a: nothrem
Někdy u sql příkazů záleží i na použité metodě.
třeba porovnání data podle roku a měsíce: 1. řešení (YEAR(datum1) = YEAR(datum2)) AND (MONTH(datum1) = MONTH(datum2)) 2. řešení DATE_FORMAT(datum1, "%Y-%m-01") = DATE_FORMAT(datum2, "%Y-%m-01") Člověk by řek, že druhé řešení musí být pomalejší, protože se datum musí převádět (navíc z něj není jasné o co se snaží), ale ono to je přesně naopak. Ve skutečnosti je druhé řešení až o 40% - 70% rychlejší. Druhý příklad třeba spojování hodnot z databáze: 1. řešení - spojit přímo v DB funkcí CONCAT() CONCAT(SELECT * FROM tabulka) 2. řešení - vytáhnout z DB jako jednotlivé hodnoty a spojit je v php $result = mysql_query('SELECT * FROM tabulka'); I když v php budete muset dělat cyklus, který hodnoty projde, uloží do pole a pak je spojí, zatímco v DB použijete jednoduchý příkaz, pořád je php mnohonásobně rychlejší než funkce CONCAT (která je navíc známá problémy s českými znaky). |
||
Časová prodleva: 17 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0