<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Kommentare zu: SQL_CALC_FOUND_ROWS oder: Wie man effektiv Bl&#228;tternavigationen umsetzt</title>
	<atom:link href="http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/feed/" rel="self" type="application/rss+xml" />
	<link>http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/</link>
	<description>Optimierung und Tipps zur Beschleunigung von PHP und MySQL</description>
	<lastBuildDate>Thu, 26 Jan 2012 23:01:03 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>Von: name</title>
		<link>http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/comment-page-1/#comment-43048</link>
		<dc:creator>name</dc:creator>
		<pubDate>Mon, 26 Sep 2011 07:38:32 +0000</pubDate>
		<guid isPermaLink="false">http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/#comment-43048</guid>
		<description>n@3k 4.6.2008/19:51

PHPs mysql_query() holt bereits im Hintergrund alle Daten ab. Das Fetchen findet anschlie&#223;end nur noch im Puffer auf dem Client statt. Es werden also nicht nur die von dir angenommenen Daten abgeholt. F&#252;r ungepufferte Abfragen gibt es mysql_unbuffered_query(), damit geht aber weder mysql_num_rows() noch mysql_data_seek().</description>
		<content:encoded><![CDATA[<p>n@3k 4.6.2008/19:51</p>
<p>PHPs mysql_query() holt bereits im Hintergrund alle Daten ab. Das Fetchen findet anschlie&#223;end nur noch im Puffer auf dem Client statt. Es werden also nicht nur die von dir angenommenen Daten abgeholt. F&#252;r ungepufferte Abfragen gibt es mysql_unbuffered_query(), damit geht aber weder mysql_num_rows() noch mysql_data_seek().</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: tufan</title>
		<link>http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/comment-page-1/#comment-22961</link>
		<dc:creator>tufan</dc:creator>
		<pubDate>Sun, 26 Jul 2009 14:07:38 +0000</pubDate>
		<guid isPermaLink="false">http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/#comment-22961</guid>
		<description>Hi, 

ich habe es beobachtet, dass SQL_CALC_FOUND_ROWS unter Umst&#228;nden (dh. InnoDB, paar Mio. Eintraege) bis zu Faktor 10000 langsamer sein kann. Also, immer sch&#246;n gegen Testen...</description>
		<content:encoded><![CDATA[<p>Hi, </p>
<p>ich habe es beobachtet, dass SQL_CALC_FOUND_ROWS unter Umst&#228;nden (dh. InnoDB, paar Mio. Eintraege) bis zu Faktor 10000 langsamer sein kann. Also, immer sch&#246;n gegen Testen&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: SQL_CALC_FOUND_ROWS f&#252;hrt zu unerkl&#228;rlichen Abst&#252;rzen &#187; Beitrag &#187; PHP Performance</title>
		<link>http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/comment-page-1/#comment-16512</link>
		<dc:creator>SQL_CALC_FOUND_ROWS f&#252;hrt zu unerkl&#228;rlichen Abst&#252;rzen &#187; Beitrag &#187; PHP Performance</dc:creator>
		<pubDate>Tue, 28 Oct 2008 17:02:31 +0000</pubDate>
		<guid isPermaLink="false">http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/#comment-16512</guid>
		<description>[...] gew&#252;hlt habe, die Datenbanken penibel &#252;berpr&#252;ft habe. Kurz gesagt: Es lag an einer hier im Blog empfohlenen SQL-Anweisung: [...]</description>
		<content:encoded><![CDATA[<p>[...] gew&#252;hlt habe, die Datenbanken penibel &#252;berpr&#252;ft habe. Kurz gesagt: Es lag an einer hier im Blog empfohlenen SQL-Anweisung: [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Dennis</title>
		<link>http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/comment-page-1/#comment-16437</link>
		<dc:creator>Dennis</dc:creator>
		<pubDate>Mon, 06 Oct 2008 17:31:49 +0000</pubDate>
		<guid isPermaLink="false">http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/#comment-16437</guid>
		<description>sau cool das ging ja schnell, danke dir Jan</description>
		<content:encoded><![CDATA[<p>sau cool das ging ja schnell, danke dir Jan</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Jan</title>
		<link>http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/comment-page-1/#comment-16436</link>
		<dc:creator>Jan</dc:creator>
		<pubDate>Mon, 06 Oct 2008 17:29:08 +0000</pubDate>
		<guid isPermaLink="false">http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/#comment-16436</guid>
		<description>@Dennis: Ganz einfach, weil Du auf die Ressource nicht direkt zugreifen kannst. Entweder Du nutzt mysql_result oder mysql_fetch_array.</description>
		<content:encoded><![CDATA[<p>@Dennis: Ganz einfach, weil Du auf die Ressource nicht direkt zugreifen kannst. Entweder Du nutzt mysql_result oder mysql_fetch_array.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Dennis</title>
		<link>http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/comment-page-1/#comment-16435</link>
		<dc:creator>Dennis</dc:creator>
		<pubDate>Mon, 06 Oct 2008 16:22:07 +0000</pubDate>
		<guid isPermaLink="false">http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/#comment-16435</guid>
		<description>wieso bekomme ich als aussgabe: ressource id #21

wo liegt der fehler im code:

$gastebuch_data = mysql_query(&quot;SELECT SQL_CALC_FOUND_ROWS * FROM `db-gastebuch` ORDER BY TIMESTAMP DESC LIMIT {$query_string}&quot;);
$gastebuch_num_rows = mysql_query(&quot;SELECT FOUND_ROWS()&quot;);

echo $gastebuch_num_rows;</description>
		<content:encoded><![CDATA[<p>wieso bekomme ich als aussgabe: ressource id #21</p>
<p>wo liegt der fehler im code:</p>
<p>$gastebuch_data = mysql_query(&#034;SELECT SQL_CALC_FOUND_ROWS * FROM `db-gastebuch` ORDER BY TIMESTAMP DESC LIMIT {$query_string}&#034;);<br />
$gastebuch_num_rows = mysql_query(&#034;SELECT FOUND_ROWS()&#034;);</p>
<p>echo $gastebuch_num_rows;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Jan</title>
		<link>http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/comment-page-1/#comment-15203</link>
		<dc:creator>Jan</dc:creator>
		<pubDate>Sat, 16 Aug 2008 16:32:25 +0000</pubDate>
		<guid isPermaLink="false">http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/#comment-15203</guid>
		<description>Am besten Du analysierst die Query mit EXPLAIN erstmal. Wenn in der letzten Spalte (unter anderem) &quot;temporary&quot; steht, muss eine tempor&#228;re Tabelle erzeugt werden, um das Ergebnis zu ermitteln.

Durch geschickten Einsatz von Indizes k&#246;nnen viele (aber l&#228;ngst nicht alle) dieser F&#228;lle behoben werden.

Vielleicht postest Du auch mal die Query, dann k&#246;nnen wir mal gucken, welche Spalten indiziert werden sollten.</description>
		<content:encoded><![CDATA[<p>Am besten Du analysierst die Query mit EXPLAIN erstmal. Wenn in der letzten Spalte (unter anderem) &#034;temporary&#034; steht, muss eine tempor&#228;re Tabelle erzeugt werden, um das Ergebnis zu ermitteln.</p>
<p>Durch geschickten Einsatz von Indizes k&#246;nnen viele (aber l&#228;ngst nicht alle) dieser F&#228;lle behoben werden.</p>
<p>Vielleicht postest Du auch mal die Query, dann k&#246;nnen wir mal gucken, welche Spalten indiziert werden sollten.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: mydeams</title>
		<link>http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/comment-page-1/#comment-15202</link>
		<dc:creator>mydeams</dc:creator>
		<pubDate>Sat, 16 Aug 2008 16:20:35 +0000</pubDate>
		<guid isPermaLink="false">http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/#comment-15202</guid>
		<description>Hallo,

ich hatte vor geraumer Zeit schon mal ein Post geschrieben zu diesem Thema. Damals gings darum, das ich nicht 100%ig verstand wie das Genau funktioniert mit dem Einbauen. 

Als ich es dann geschafft habe - ist mir folgendes Aufgefallen. In dem Projekt wo ich diese Methode genutzt habe, werden sehr viele MySQL Abfrage erstellt. ca. 1000 besucher hat die Seite am Tag. Mir/Uns ist aufgefallen, dass die Seite bzw. die MySQL DB sich nach na Zeit aufgehangen hat. Wegen dieses befehls. Habe ich das in der alten konventionellen Art gemacht mit nem entsprechendem Count ... traten die Abst&#252;rze nimmer auf.

In der Prozessorliste von PHPMyAdmin hing er sich immer im Prozess &quot;copy to tmp table&quot; auf. Ich muss dazu aber auch sagen, dass die MySQL abfrage recht m&#228;chtig war, mit LIKE, LEFT JOIN etc. pp. 

Jetzt sind die MySQL Absturz durchaus weniger geworden, aber leider noch nicht wirklich ganz weg. Wei&#223;t Du/Ihr wie so ein &quot;copy to tmp table&quot; entsteht - und wie man es vermeiden kann, das sich MySQL an diesem Prozess aufh&#228;ngt? 
Es ist wirklich so, das 1 Befehl sporadisch einen Datenstau verursacht. Sobald n&#228;mlich genau diesen Prozess Kille - l&#228;uft die MySQL DB wieder einwandfrei.

W&#228;re sehr dankbar f&#252;r ein paar n&#252;tzliche Anregungen.

bzw. sehr toller Blog - gefallen mir gut deine Beitr&#228;ge :-)

lieben Gru&#223;,
mydeams</description>
		<content:encoded><![CDATA[<p>Hallo,</p>
<p>ich hatte vor geraumer Zeit schon mal ein Post geschrieben zu diesem Thema. Damals gings darum, das ich nicht 100%ig verstand wie das Genau funktioniert mit dem Einbauen. </p>
<p>Als ich es dann geschafft habe &#8211; ist mir folgendes Aufgefallen. In dem Projekt wo ich diese Methode genutzt habe, werden sehr viele MySQL Abfrage erstellt. ca. 1000 besucher hat die Seite am Tag. Mir/Uns ist aufgefallen, dass die Seite bzw. die MySQL DB sich nach na Zeit aufgehangen hat. Wegen dieses befehls. Habe ich das in der alten konventionellen Art gemacht mit nem entsprechendem Count &#8230; traten die Abst&#252;rze nimmer auf.</p>
<p>In der Prozessorliste von PHPMyAdmin hing er sich immer im Prozess &#034;copy to tmp table&#034; auf. Ich muss dazu aber auch sagen, dass die MySQL abfrage recht m&#228;chtig war, mit LIKE, LEFT JOIN etc. pp. </p>
<p>Jetzt sind die MySQL Absturz durchaus weniger geworden, aber leider noch nicht wirklich ganz weg. Wei&#223;t Du/Ihr wie so ein &#034;copy to tmp table&#034; entsteht &#8211; und wie man es vermeiden kann, das sich MySQL an diesem Prozess aufh&#228;ngt?<br />
Es ist wirklich so, das 1 Befehl sporadisch einen Datenstau verursacht. Sobald n&#228;mlich genau diesen Prozess Kille &#8211; l&#228;uft die MySQL DB wieder einwandfrei.</p>
<p>W&#228;re sehr dankbar f&#252;r ein paar n&#252;tzliche Anregungen.</p>
<p>bzw. sehr toller Blog &#8211; gefallen mir gut deine Beitr&#228;ge <img src='http://phpperformance.de/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>lieben Gru&#223;,<br />
mydeams</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Aycko</title>
		<link>http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/comment-page-1/#comment-13071</link>
		<dc:creator>Aycko</dc:creator>
		<pubDate>Tue, 15 Jul 2008 13:45:29 +0000</pubDate>
		<guid isPermaLink="false">http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/#comment-13071</guid>
		<description>Bei sehr gro&#223;en und komplexen Resultsets empfiehlt sich auch das Cachen des gesamten Resultsets als Array. Die Bl&#228;tterfunktion an sich, l&#228;sst sich dann sehr einfach via array_slice() umsetzten.</description>
		<content:encoded><![CDATA[<p>Bei sehr gro&#223;en und komplexen Resultsets empfiehlt sich auch das Cachen des gesamten Resultsets als Array. Die Bl&#228;tterfunktion an sich, l&#228;sst sich dann sehr einfach via array_slice() umsetzten.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Von: Sofia</title>
		<link>http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/comment-page-1/#comment-12962</link>
		<dc:creator>Sofia</dc:creator>
		<pubDate>Mon, 14 Jul 2008 18:04:44 +0000</pubDate>
		<guid isPermaLink="false">http://phpperformance.de/sql_calc_found_rows-oder-wie-man-effektiv-blaetternavigationen-umsetzt/#comment-12962</guid>
		<description>Warte auch noch auf die Vor/Nachteile...</description>
		<content:encoded><![CDATA[<p>Warte auch noch auf die Vor/Nachteile&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

