Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Aktivasyon mailiniz gelmediyse buraya tıklayın.
Mayıs 12, 2008, 11:29:38 am
41792 Mesaj 9068 Konu Gönderen: 17464 Üye
Son üye: abudak
Turk-Php.Com Forum  |  Yardım Forumları  |  Veritabanı Yardım Forumu  |  Join la ilgili Lütfen fikirlerinizi bekliyorum « önceki sonraki »
Sayfa: [1] Yazdır
Yazan Konu: Join la ilgili Lütfen fikirlerinizi bekliyorum  (Okunma Sayısı 170 defa)
mukremin
Mükremin
PHP Öğrencisi
*
Offline Offline

Mesaj Sayısı: 106



Üyelik Bilgileri WWW
Join la ilgili Lütfen fikirlerinizi bekliyorum
« : Mart 31, 2008, 09:39:08 am »

Selam Benim kafama takilan bir konu var.

Simdi söyle bir sorgu ile istedigimi db den aliyorum

$sor = mysql_query("SELECT isimler.isim,soy_isim, eMail_ler.eMail FROM isimler,eMail_ler WHERE isimler.user_id=eMail_ler.user_id");

ama join kullandigim zamanda istedigimi aliyorum mesela
$sor2= mysql_query("SELECT isim,soy_isim,eMail FROM isimler RIGHT JOIN eMail_ler ON isimler.user_id=eMail_ler.user_id");

bu sorgularin ikiside benim istemis oldugum sonuclari getiriyor fakat isin icine performans olayi girdimmi tereddüt ediyorum
arkadaslar tecrübeli arkadaslar bu sorgularin hangisi daha hizli yada daha hizli sorgu naslil yapabilirim...


Iyi calismalar.
Logged

Bana hakkı soran oğul haber al aşık sazından.
Göğsü peygamber ağacı kılıfı ALİ bezinden.
vertu
PHP Stajyeri
**
Offline Offline

Mesaj Sayısı: 293



Üyelik Bilgileri WWW
Ynt: Join la ilgili Lütfen fikirlerinizi bekliyorum
« Yanıtla #1 : Nisan 05, 2008, 05:01:10 pm »

tam olarak yanıt veremesemde daha az sorgu daha fazla hız diyeceğim için her iki yöntemde de sorgu sayılarını al sorgu zamanlarına bak. hangi yöntem daha çok sorgu yapıyor araştır en azı hangisiyse onu kullan. az kod meselesi gibi bişey.
Logged
xdat
Yeni Kullanıcılar
*
Offline Offline

Mesaj Sayısı: 14


Üyelik Bilgileri
Ynt: Join la ilgili Lütfen fikirlerinizi bekliyorum
« Yanıtla #2 : Mayıs 08, 2008, 04:05:27 pm »

senin yaptığının ismi cross join dir ve o olay şu şekilde gerçekleşir.
1. tablo da 100 kayıt varsa ve 2. tabloda 500 kayıt varsa öncelikle bu iki tablo çapraz olarak birleştirilir.
yani 1. tablodaki her kayıda 2. tablodaki birer kayıt düşecek şekilde genişletilir. yani ortaya 100*500=50000 adet kayıt çıkar.
ve koşulda belirttiğin durumdaki kayıtlar seçilerek sana döndürülür.

join olayında ise left de ilk tablo right da ise ikici tablo referans alınır. ve referasn tablodaki tüm alanlara karşılık join şartında belirttiğin kayıtlar muattap alınır.
bunu tam olarak görmek istersen

DESC SENİN SQL ;

yaparsan mysql bu işi nasıl yaptığını hatta yaparken hangi indexleri kullandığını ve muattap olduğun kayıt sayısını gösterecektir.

yani birinci yöntem makina düşmanı bi yöntemdir.
Logged
bndrs
PHP Öğrencisi
*
Offline Offline

Mesaj Sayısı: 52



Üyelik Bilgileri WWW
Ynt: Join la ilgili Lütfen fikirlerinizi bekliyorum
« Yanıtla #3 : Mayıs 08, 2008, 04:28:34 pm »

Selam,
JOIN veya diğer yöntemleri çokça kullanıp "vaybe derdim teksorguda üç tabloyu nasılda süzdüm" sonra birde tabloya 1.000 kayıt ekleyip bakayım zaman içerisinde n'olur diye denedim. Sonuç: makina kitlendi!. Her ikiside çok kayıt içeren tablolarla çalışırken bela olur.

iki tablo için iki ayrı sorgu kullanmak daha iyi amatörce gibi görünüyordur ama gerçekte profesyonel yaklaşım buymuş denedim gördüm.
Logged

Sayfa: [1] Yazdır 
« önceki sonraki »
Gitmek istediğiniz yer: