<?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; MySQL</title>
	<atom:link href="http://www.phpbil.com/category/mysql/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>
		<item>
		<title>MySQL Performans : IP&#039;leri veritabanında Saklama</title>
		<link>http://www.phpbil.com/mysql-performans-ipleri-veritabaninda-saklama/</link>
		<comments>http://www.phpbil.com/mysql-performans-ipleri-veritabaninda-saklama/#comments</comments>
		<pubDate>Fri, 20 Aug 2010 16:19:13 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>

		<guid isPermaLink="false">http://www.phpbil.com/?p=185</guid>
		<description><![CDATA[Merhaba arkadaşlar. Bundan sonra blog&#8217;da daha sık yazı yazmayı düşünüyorum. Ufak ipuçlarına ve performans ipuçlarına ağırlık vereceğim. Birçoğumuz ip adreslerini veritabanında saklarken 15 karakter uzunluğunda varchar ile oluşturulmuş sütunlar kullanırız. Bu durum INT alanından 4byte daha fazla kayba neden olur. Bunun yerine UNSIGNED INT kullanmamız sistem kaynaklarını 4byte daha az tüketmemizi sağlar. Daha performanslı bir [...]]]></description>
			<content:encoded><![CDATA[<p>Merhaba arkadaşlar. Bundan sonra blog&#8217;da daha sık yazı yazmayı düşünüyorum. Ufak ipuçlarına ve performans ipuçlarına ağırlık vereceğim.</p>
<p>Birçoğumuz ip adreslerini veritabanında saklarken 15 karakter uzunluğunda varchar ile oluşturulmuş sütunlar kullanırız. Bu durum INT alanından 4byte daha fazla kayba neden olur. Bunun yerine UNSIGNED INT kullanmamız sistem kaynaklarını 4byte daha az tüketmemizi sağlar.<br />
<span id="more-185"></span><br />
Daha performanslı bir yapı için 10 karakter uzunluğunda UNSIGNED INT kullanıyoruz. IP&#8217;yi veritabanına kaydederken INET_ATON() fonksiyonunu kullanıyoruz.</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;">3</span><span style="color: #66cc66;">,</span> <span style="color: #ff0000;">'Gökhan Bora'</span><span style="color: #66cc66;">,</span> INET_ATON<span style="color: #66cc66;">&#40;</span><span style="color: #ff0000;">'192.168.5.4'</span><span style="color: #66cc66;">&#41;</span><span style="color: #66cc66;">&#41;</span>;</pre></div></div>

<p>IP&#8217;yi veritabanından alırken ise INET_NTOA() fonksiyonunu kullanıyoruz.</p>

<div class="wp_syntax"><div class="code"><pre class="sql" style="font-family:monospace;"><span style="color: #993333; font-weight: bold;">SELECT</span> INET_NTOA<span style="color: #66cc66;">&#40;</span>ip<span style="color: #66cc66;">&#41;</span> <span style="color: #993333; font-weight: bold;">AS</span> ip <span style="color: #993333; font-weight: bold;">FROM</span> uyeler <span style="color: #993333; font-weight: bold;">WHERE</span> id<span style="color: #66cc66;">=</span><span style="color: #cc66cc;">3</span>;</pre></div></div>

<p>Kaynaklar:<br />
<a href="http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html">http://dev.mysql.com/doc/refman/5.0/en/miscellaneous-functions.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpbil.com/mysql-performans-ipleri-veritabaninda-saklama/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MySQL Karakter Seti Sorunları Yaşamamanız için</title>
		<link>http://www.phpbil.com/mysql-karakter-seti-sorunlari-yasamamaniz-icin/</link>
		<comments>http://www.phpbil.com/mysql-karakter-seti-sorunlari-yasamamaniz-icin/#comments</comments>
		<pubDate>Sat, 02 May 2009 16:37:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[MySQL]]></category>
		<category><![CDATA[hata]]></category>
		<category><![CDATA[karakter seti]]></category>
		<category><![CDATA[latin1]]></category>
		<category><![CDATA[türkçe karakter]]></category>
		<category><![CDATA[utf8]]></category>

		<guid isPermaLink="false">http://www.phpbil.com/?p=66</guid>
		<description><![CDATA[Web Sitesi olan ve sitesini başka bir sunucuya taşımak isteyen veya yedekleme işlemi yapan bir çok kişi karakter sorunlarıyla karşılaşmıştır. Aslında bu tür sorunlar yaşamamanız için yapmanız gerekenler çok basit. Ancak sorunla karşılaştığınızda çözüme ulaşmak başınıza bela olabilir. Bu tür sorunlar yaşamamanız için benim önerilerim şunlar: Öncelikle kullandığınız ide,metin editörü vb (artık herneyse) ayarlarından varsayılan [...]]]></description>
			<content:encoded><![CDATA[<p>Web Sitesi olan ve sitesini başka bir sunucuya taşımak isteyen veya yedekleme işlemi yapan bir çok kişi karakter sorunlarıyla karşılaşmıştır. Aslında bu tür sorunlar yaşamamanız için yapmanız gerekenler çok basit. Ancak sorunla karşılaştığınızda çözüme ulaşmak başınıza bela olabilir.</p>
<p>Bu tür sorunlar yaşamamanız için benim önerilerim şunlar:</p>
<ol>
<li>Öncelikle kullandığınız ide,metin editörü vb (artık herneyse) ayarlarından varsayılan karakter setini utf-8 yapın ve dosyalarınızı utf-8 karakter seti formatında kaydedin.</li>
<li> Veritabanı oluştururken bağlantı karşılaştırmanızı utf8_xxx yapın.</li>
<li> Veritabanı oluştururken karakter seti olarak yine utf8_xxx seçin.</li>
<li> Veritabanına veri girdiğiniz html sayfanızın karakter setinin utf-8 olmasına dikkat edin.</li>
<li> Sitenizin script dosyasından veritabanı sunucusuna bağlandıktan sonra şu sorguyu çalıştırmayı unutmayın : &#8221; SET NAMES &#8216;UTF-8&#8242;; &#8221; (çift tırnaklar yok, tek tırnaklar var.)</li>
</ol>
<p>Bunları yaptıktan sonra sitenizde karakter seti sorunları yaşamazsınız. Ancak var olan veriler utf-8&#8242;e çevrilmez ise bu sefer eski içeriğiniz sayfanızda hatalı gösterilecektir.</p>
<p>Benim tek cümleyle önerim: &#8220;Herşey utf-8 olsun ve bunu biran önce yapın.&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.phpbil.com/mysql-karakter-seti-sorunlari-yasamamaniz-icin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

