Autor Zpráva
fuch
Profil
budu pouzivat vcelku slozity sql dotaz.
myslite ze bude rychlejsi vyhodnotit onen slozity dotaz, nebo ho pouzit po 'osekani' vcelku dosti slozitym php kodem?
f.
Kajman
Profil *
Zkus oboje a změř si, jak to dlouho trvá.

Vyladění sql dotazu pomocí php bych tipnul na vítěze.
Charlie
Profil
Rozhodně MySQL, ořezání přes PHP by trvalo daleko déle. Databáze se dá navíc vyladit pomocí indexů, pak to bude jednoznačně nejrychlejší.
Kajman
Profil *
Charlie, podle otázky mi přišlo, že chce v php osekávat dotaz, ne jeho výsledky.

BTW: složité dotazy v MySql snad ani nejdou ne? Od toho tu je Oracle ci PosgreSQL ;-)
fuch
Profil
no, slozitym dotazem jsem mel na mysli ze v selectu bude za where strasna spousta podminek - pomoci php bych byl schopen jejich pocet redukovat. no a otazka stale zni, jestli to ma cenu.

Kajman:
no asi to tak udelam. coz se mi moc zrovna nechce.
myslim, ze Charlie to myslel dobre, jen vzniklo nedorozumneni.
Charlie
Profil
Kajman, já ani nevím, jak jsem tu otázku pochopil, možná by nám to fuch mohl lépe vysvětlit :-)


složité dotazy v MySql snad ani nejdou ne?

Co je to složitý dotaz? Já jsem viděl v MySQL tucty dotazů, které jsem ani nepochopil.
Charlie
Profil
selectu bude za where strasna spousta podminek

A jak se tam dostanou? Tak je tam prostě nepiš.
Charlie
Profil
Možná bude nejlepší, když nám sem hodíte ten SQL dotaz i kus scriptu, který by ho měl oříznout.
fuch
Profil
Charlie no, jak jsem zminoval vyse, jeste to napsane nemam, jinak bych to zkusil a neptal bych se.

tak konkretne:
v tabulce mam dva sloupce jejichz hodnoty udavaji interval. ve ctyrech promennych mam ulozeno, jestli plati intervaly, ktere dohromady davaji celek a jsou spocitatelne (rovnomerne, stejne). jediny jak me napadlo, jestli maji tyto jednotlive intervaly prunik s intervalem tabulkovym jsou dva vyrazy (IF>=li and IF<=ti) or (IF<li and IT>=li). IF dolni interval IT horni interval z tabulky li&ti v promennych. no a jde mi o to, jestli je lepsi to tam jednoduse podle tech promennych naflakat, nebo jestli je lepsi pomoci php zjistit vsechny 'sousedni' promenne a do vyse zminenych vyrazu dat li&ti takto vzniklych intervalu.
Charlie
Profil
Jestli se jedná jen o tohle, tak bude podstatně rychlejší MySQL. Pod pojmem "hodne where podminek za sebou" jsem si představoval aspoň 10 :-)
fuch
Profil
Charlie: toto je jen zlomek. nektere ostatni budou podobneho razu.
Charlie
Profil
Přes PHP by to bylo hodně krkolomné, nejlepší by bylo zvolit lepší technologii.
Kajman
Profil *
JJ, na takovéhle obyčejné a podmínky (v jakémkoli množství :) určitě využít databázi.
Kajman
Profil *
Co je to složitý dotaz? Já jsem viděl v MySQL tucty dotazů, které jsem ani nepochopil.

Třebas když je v tom jednom spousta jiných.
Kaifman
Profil
dulezite je abys ty podminky daval z prava doleva takovym zpusobem ze ta co je vlevo vyradi vic zaznamu ktere nevyhovuji nez ta co je v pravo od ni a takhle celej dotaz..

kdyz totiz db zjisti ze ten radek nevyhovuje tak uz na nem nezkousi dalsi podminky co sou v pravo od te ktera nevyhovuje
Charlie
Profil
Třebas když je v tom jednom spousta jiných.

Tak takových jsem opravdu viděl tucty :-) Je pravda, že ty běhají na Oracle rychleji.
Kaifman
Profil
Charlie

zalezi na tom jak ten dotaz optimalizujes a jak mas oindexovany sloupce

doporucuju knihu O'Reilly - High Performance MySQL ale je to v anglictine
Charlie
Profil
Kaifman

o této knize vím a vím i o optimalizaci dotazů. Neznamená to, že to bude pomalé, ale stejně to bude na Oracle běhat rychleji.
Toto téma je uzamčeno. Odpověď nelze zaslat.