<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Gökhan Bora &#187; PHP</title>
	<atom:link href="http://www.phpbil.com/category/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.phpbil.com</link>
	<description>birkaç kod parçası</description>
	<lastBuildDate>Tue, 30 Aug 2011 11:29:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	
		<item>
		<title>MySQL Performans : Aynı işi yapan php ve mysql fonksiyonları</title>
		<link>http://www.phpbil.com/mysql-performans-ayni-isi-yapan-php-ve-mysql-fonksiyonlari/</link>
		<comments>http://www.phpbil.com/mysql-performans-ayni-isi-yapan-php-ve-mysql-fonksiyonlari/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 16:37:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.phpbil.com/?p=189</guid>
		<description><![CDATA[Merhaba arkadaşlar. PHP ve MySQL &#8216; de aynı işlevi yapan fonksiyonlar vardır. Mesela php&#8217;de time() ve mysql&#8217;de UNIX_TIMESTAMP() fonksiyonları 01-01-1970&#8242;den bugüne kadar geçen tüm saniyelerin toplamıdır. Yazılımlarımızda performans kazanımı için özellikle birden fazla sorgu gerçekleştirirken kullanacağımız sorgu cümlelerine dikkat etmeliyiz. Yukarıdaki timestamp fonksiyonlarını kullanan bir örnek verelim. Veritabanına 10 satır veri girecek isek php&#8217;nin time() [...]]]></description>
			<content:encoded><![CDATA[<p>Merhaba arkadaşlar.</p>
<p>PHP ve MySQL &#8216; de aynı işlevi yapan fonksiyonlar vardır. Mesela php&#8217;de time() ve mysql&#8217;de UNIX_TIMESTAMP() fonksiyonları 01-01-1970&#8242;den bugüne kadar geçen tüm saniyelerin toplamıdır.<br />
Yazılımlarımızda performans kazanımı için özellikle birden fazla sorgu gerçekleştirirken kullanacağımız sorgu cümlelerine dikkat etmeliyiz.<br />
<span id="more-189"></span><br />
Yukarıdaki timestamp fonksiyonlarını kullanan bir örnek verelim.<br />
Veritabanına 10 satır veri girecek isek php&#8217;nin time() fonksiyonunu kullanarak oluşacak timestamp değerinin bir değişkene atayıp sorgularımızı gerçekleştirmemiz daha performanslı olacaktır.</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> uyeler <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'Gökhan Bora'</span><span style="color: #66cc66;">,</span> UNIX_TIMESTAMP<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> uyeler <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'Ali Veli'</span><span style="color: #66cc66;">,</span> UNIX_TIMESTAMP<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">....</span>
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> uyeler <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'Kırkdokuz Elli'</span><span style="color: #66cc66;">,</span> UNIX_TIMESTAMP<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>yerine</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;">$tsval <span style="color: #66cc66;">=</span> <span style="color: #993333; font-weight: bold;">TIME</span><span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span>;
&nbsp;
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> uyeler <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">1</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'Gökhan Bora'</span><span style="color: #66cc66;">,</span> $tsval<span style="color: #66cc66;">&#41;</span>
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> uyeler <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">2</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'Ali Veli'</span><span style="color: #66cc66;">,</span> $tsval<span style="color: #66cc66;">&#41;</span>
<span style="color: #66cc66;">....</span>
<span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">INTO</span> uyeler <span style="color: #993333; font-weight: bold;">VALUES</span><span style="color: #66cc66;">&#40;</span><span style="color: #cc66cc;">10</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'Kırkdokuz Elli'</span><span style="color: #66cc66;">,</span> $tsval<span style="color: #66cc66;">&#41;</span></pre></div></div>

<p>kullanmamız gerekiyor. Çünkü ilk örnekte MySQL 10defa UNIX_TIMESTAMP() fonksiyonunu çalıştırıyor.</p>
<p>Benzer bir durumda mysql RAND() fonksiyonu için geçerli. Birçok programcı bu hataya düşer. Tablodan rasgele bir satırı almak için bu fonksiyonu kullanır. Bunun yerine php&#8217;de rasgele sayı üretip bu sayıya göre satırı almalıyız.<br />
Örnek (nettuts&#8217;tan alıntıdır.)</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">// ne yapmamalıyız</span>
<span style="color: #000088;">$r</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT username FROM user ORDER BY RAND() LIMIT 1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #666666; font-style: italic;">// doğru olan</span>
<span style="color: #000088;">$r</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT count(*) FROM user&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$d</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_fetch_row</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$r</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000088;">$rand</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mt_rand</span><span style="color: #009900;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #339933;">,</span><span style="color: #000088;">$d</span><span style="color: #009900;">&#91;</span><span style="color: #cc66cc;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">-</span> <span style="color: #cc66cc;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
<span style="color: #000088;">$r</span> <span style="color: #339933;">=</span> <span style="color: #990000;">mysql_query</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">&quot;SELECT username FROM user LIMIT <span style="color: #006699; font-weight: bold;">$rand</span>, 1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>Aşağıdaki kaynaktan daha fazla performans ipucuna erişebilirsiniz:<br />
Kaynak: <a href="http://net.tutsplus.com/tutorials/other/top-20-mysql-best-practices/">http://net.tutsplus.com/tutorials/other/top-20-mysql-best-practices/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpbil.com/mysql-performans-ayni-isi-yapan-php-ve-mysql-fonksiyonlari/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

