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

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

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.

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.

Konuya Oy Verin
5/5

1 Yorum

  1. gravatar

    SINIRSIZ EĞİTİM HİZMETLERİ olarak bizde eğitim alanında online platform ve kitap satışı ile Türkiye Özel okullarında 10 yılı aşkın süredir faaliyet göstermekteyiz.LMS platformumuzun çalıştığı sunucu üzerinde çalıştırdığımız MySQL ile ilgili sizden iyileştirme konusunda destek almak isterim.
    Konu hakkında geri dönüşlerinizi bekliyor olacağım.

Yorum Yazın