<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<atom:link href="http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/?rss" rel="self" type="application/rss+xml" />
<title>DunLog - MySQL: úskalí použití časových funkcí v dotazech</title>
	<link>http://blog.milde.cz</link>
	<description>Smrt není problém, život bez smyslu je</description>
	<language>Cs</language>
	<generator>Nors 4.3.3</generator>
	<copyright>2010</copyright>
	<lastBuildDate>Thu, 09 Sep 2010 05:23:32 +0200</lastBuildDate>

	<webMaster>daniel@milde.cz (Daniel Milde)</webMaster>

		<item>
		<title>naniccz</title>
		<link>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1447</link>
		<guid>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1447</guid>
		<description><![CDATA[Zajímalo by mne, jak by se to chovalo při použití prepared statementu. (jestli při použití CURDATE by to bylo také pomalé)
díky
Na tento komentár odpovedal [3] Dundee]]></description>
		<pubDate>Sun, 08 Feb 2009 11:55:09 +0100</pubDate>
		</item>

		<item>
		<title>v6ak</title>
		<link>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1448</link>
		<guid>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1448</guid>
		<description><![CDATA[Zajímavé. Já bych toto řešení preferoval i z jiného důvodu - možnost použití Dependency Injection. Jinak se navíc závislost na čase rozloží zbytečně do dvou míst.
Na tento komentár odpovedal [3] Dundee]]></description>
		<pubDate>Sun, 08 Feb 2009 12:14:39 +0100</pubDate>
		</item>

		<item>
		<title>Dundee</title>
		<link>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1450</link>
		<guid>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1450</guid>
		<description><![CDATA[#1 naniccz: Prepared statements na tom obecně nejsou s výkonem moc dobře. Vyplatí se pouze z pohledu bezpečnosti. Viz http://blog.milde.cz/post/213-mysql-bindovat-ci-nebindovat-/
#2 v6ak: Dependency injection? Mohl bys to přiblížit? Myslel jsem, že dependency injection spočívá v podstrčení komponenty, která má neočekávanou implementaci.
]]></description>
		<pubDate>Sun, 08 Feb 2009 13:26:40 +0100</pubDate>
		</item>

		<item>
		<title>Jens</title>
		<link>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1453</link>
		<guid>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1453</guid>
		<description><![CDATA[V uvedeném příkladě je ale jeden zásadní problém, ne zřídka bývá stroj (rozuměj počítač, server) zpracovávající HTTP požadavky a vykonávající PHP skripty fyzicky jiným strojem než je stroj poskytující MySQL. V tu chvíli se časové údaja na obou z nich mouhou lišit. I v případě že se liší jen o několik vteřin to může být dosti zásadní problém, pokud spustíte operaci spoléhající na přesné datum (například generování nějakých statistik o půlnoci), pak datum CURDATE() a date(&quot;Y-m-d&quot;) může mít na obou strojích úplně jiné hodnoty tím mohou vzniknout nemalé problémy.
Jediné řešení je spolehnout se buď pouze na PHP nebo pouze ma MySQL - kombinace obou je špatná a potenciálně nebezpečná!
Na tento komentár odpovedal [5] Dundee]]></description>
		<pubDate>Sun, 08 Feb 2009 16:20:57 +0100</pubDate>
		</item>

		<item>
		<title>Dundee</title>
		<link>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1454</link>
		<guid>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1454</guid>
		<description><![CDATA[#4 Jens: V uvedeném příkladě jde především o výkon. Přesnost na sekundy není potřeba - je jedno jestli se článek na titulce objeví v 00:00:00 nebo 00:00:05. V jiných příkladech by se samozřejmě přístup mohl lišit.
Na tento komentár odpovedal [6] Jens]]></description>
		<pubDate>Sun, 08 Feb 2009 16:33:34 +0100</pubDate>
		</item>

		<item>
		<title>Jens</title>
		<link>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1455</link>
		<guid>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1455</guid>
		<description><![CDATA[#5 Dundee:  Snažím se jen upozornit na to, že mnohdy nejde jen o výkon ale i o bezpečnost správnou funkcionalitu.
]]></description>
		<pubDate>Sun, 08 Feb 2009 16:58:12 +0100</pubDate>
		</item>

		<item>
		<title>Bohdan</title>
		<link>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1456</link>
		<guid>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1456</guid>
		<description><![CDATA[Není skoro jedna vteřina trochu moc na takový dotaz? Jsou tam nastavené indexy?
Na tento komentár odpovedal [10] Dundee]]></description>
		<pubDate>Sun, 08 Feb 2009 18:27:20 +0100</pubDate>
		</item>

		<item>
		<title>Marek</title>
		<link>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1457</link>
		<guid>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1457</guid>
		<description><![CDATA[ad dependency injection - jde o to, ze pri pouziti curdate() se bude tezko zkouset, jak se dotaz zachova pro nejaky konkretni den (ne jen pro &quot;dnesek&quot;) - jakmile to volani curdate() nahradime nejakym menitelnym parametrem, muzeme volani lepe testovat - o tom cele DI je
ad rychlost - dotaz je postaveny nestastne, protoze pro kazdy radek toho joinu se &quot;vypocitava&quot; aktualni datum znovu, proto to tak dlouho trva - navic je to spatne, protoze kazde porovnani vlastne probiha s trosku jinym datem - kdyby ten dotaz bezel 5 minut, byly by prvni hodnoty porovnavany proti 00:00 a posledni proti 00:05 - v tomhle pripade to samozrejme nevadi, ale koncepcne je to chyba - vztazne datum by melo byt konstantni = parametr
btw slovo &quot;cathegory&quot; neexistuje ;)
Na tento komentár odpovedal [10] DundeeNa tento komentár odpovedal [12] Jakub Vrána]]></description>
		<pubDate>Sun, 08 Feb 2009 19:50:12 +0100</pubDate>
		</item>

		<item>
		<title>ToM</title>
		<link>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1458</link>
		<guid>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1458</guid>
		<description><![CDATA[to Marek:
To se me nejak nezda, ze by pro kazdy radek mysql znovu vracelo CURDATE(). Takovou zakladni optimalizaci pri predzpracovani dotazu by snad mel DB stroj mit, ze fci, ktera vraci &quot;konstantu&quot;, proste nahradi hodnotou. A pak teprve dotaz provede. Pokud to tak neni, tak me vyvedte z omylu. Pravdou je, ze ten temer sekundovy rozdil tomu napovida.
Na tento komentár odpovedal [10] Dundee]]></description>
		<pubDate>Sun, 08 Feb 2009 21:55:56 +0100</pubDate>
		</item>

		<item>
		<title>Dundee</title>
		<link>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1459</link>
		<guid>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1459</guid>
		<description><![CDATA[#7 Bohdan: Ano, indexy tam jsou.
#8 Marek: #9 ToM: Dotaz trvá takto dlouho překvapivě kvůli závěrečnému třídení. A to i přesto, že je nad sloupcem date index.
Na tento komentár odpovedal [11] Dundee]]></description>
		<pubDate>Sun, 08 Feb 2009 22:35:50 +0100</pubDate>
		</item>

		<item>
		<title>Dundee</title>
		<link>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1461</link>
		<guid>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1461</guid>
		<description><![CDATA[#10 Dundee: Oprava: Kvůli třídění a seskupení. Pokud dotaz obsahuje alespoň jedno z toho, neskončí pod 0,9s.
]]></description>
		<pubDate>Sun, 08 Feb 2009 22:59:58 +0100</pubDate>
		</item>

		<item>
		<title>Jakub Vrána</title>
		<link>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1466</link>
		<guid>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1466</guid>
		<description><![CDATA[#8 Marek:  Datové funkce se vyhodnocují jen jednou za dotaz, jak je jasně uvedeno na http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
Velmi podobný příklad je z pohledu indexů rozebrán na http://php.vrana.cz/ukazka-pouziti-indexu.php
Na tento komentár odpovedal [13] Dundee]]></description>
		<pubDate>Tue, 17 Feb 2009 22:00:25 +0100</pubDate>
		</item>

		<item>
		<title>Dundee</title>
		<link>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1467</link>
		<guid>http://blog.milde.cz/post/249-mysql-uskali-pouziti-casovych-funkci-v-dotazech/#post1467</guid>
		<description><![CDATA[#12 Jakub Vrána: Díky za trknutí Jakube, po přidání dalšího indexu se dotaz desetkrát zrychlil.
]]></description>
		<pubDate>Tue, 24 Feb 2009 01:12:06 +0100</pubDate>
		</item></channel>
</rss>
