PHP ile optimizeli SQL sorguları nasıl yazılır?

Standard

Kısaca SQL sorgularının nasıl çalıştığından bahsedelim.

PHP ile SQL sorguları yazarak veri çekiyorsunuz, fakat her yazılan sorgu ve sorgunun sonucunda sunucu üzerinden verinin çekilmesi, veri çekilirken de sunucu kaynaklarının kullanılması gibi arkaplanda maddeler bulunmaktadır. Siz bir sorguyu çektiğinizde (cache yoksa), mysql CPU ve RAM kullanarak makinedeki kaynakları tüketip, disk üzerinde yazılı olan veritabanından çektiğiniz sorgunun sonucunu döndürür. Bu sorgunun dönmesi sırasında ve sonucunda, kaynakların kullanımı oldukça önemlidir.

Aslında neyi nasıl yapacağınız ve hangi şeylere karar vereceğiniz projenizin gidişi ve yapısı ile ilgilidir. Yapmak istediğiniz şey sabit ve değişken değilse planlamanız ve kullanmanız gereken şeyler farklılaşır.

Aşağıda vereceğim örnek optimizasyonun en basit ve ilk adımıdır.

Hemen size basic-klasik kodlarla bir örnek vereyim:

“urunler” adlı bir tablomuz olduğunu varsaylım. Bu tabloda, “id, adi, fiyati, aciklama, ana_resim, x, y, z” adlı hücreler var. Ve bu tabloda kayıtlı 15.000 kayıt var. Aşağıdaki sorgu ile ürünleri listelediğinizi varsayıyoruz. Fakat listelerken sadece ürün adı ve fiyatını alacaksınız.

mysql_query("select * from urunler");

Bu şekilde sorguyu yazarsanız, ekrana basmayacağınız verileri de çekmiş olursunuz. Dolayısıyla 0.009 saniye süren bu sorguyu şu şekilde yazarsanız:

mysql_query("select adi, fiyati from urunler");

0.004 saniyeye düşürmüş olursunuz.

Bir de bunun üstüne, sorgunuz sürekli sabit ve çekilen bir sorgu ise, “adi ve fiyati” tablosuna index atarak, bu sorguyu 0.001 saniyelere kadar düşürebilirsiniz.

Dolayısıyla, özetlemek gerekirse, bu tarz sorgularınızı yazarken, kullanmayacağınız tablo hücrelerini çekmeyiniz. Yani sık yapılan yanlışlardan birisi “select * from” diyerek yıldızı kullanmaktadır. Tüm sorgularda * (yıldız) kullanırsanız tüm tabloyu çekmiş olursunuz. Bunun yerine select ve from arasına hücrelerin isimlerini yazarak sorgularınızı eskisine nazaran iyileştirmiş olursunuz.

MySQL’de Hızlandırmak İçin Index Nasıl Atılır?

phpMyadmin arayüzünden girdikten sonra, PHP sorgunuzda select ile from arasındaki çekmek istediğiniz tabloları burada seçim yapıyoruz.

mysql index atma

Daha sonra en altta yer alan Index bağlantısına tıklıyoruz. Indexleme kurallarına göre sıkıntı yoksa, indexiniz başarıyla atılmış olacaktır.

mysql index atmak

MySQL optimizasyonu ile ilgili olarak database cache sistemleri kullanabilirsiniz. Bununla ilgili olarak Memcache konuma göz atabilirsiniz.

Summary
Article Name
PHP ile optimizeli SQL sorguları nasıl yazılır?
Description
Her yazılan sorgu ve sorgunun sonucunda sunucu üzerinden verinin çekilmesi, veri çekilirken de sunucu kaynaklarının kullanılması gibi arkaplanda maddeler bulunmaktadır.
Author
Mutlu ARICI

Leave a Reply

Your email address will not be published. Required fields are marked *