Merhaba, Ziyaretçi. Lütfen giriş yapın veya üye olun.
Aktivasyon mailiniz gelmediyse buraya tıklayın.
06, 2008, 07:34:32 pm
42719 Mesaj 8080 Konu Gönderen: 17918 Üye
Son üye: tlord
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ı 390 defa)
mukremin
Mükremin
PHP Öğrencisi
*
Offline Offline

Mesaj Sayısı: 116


En büyük sermaye TECRÜBEDIR.


Üyelik Bilgileri WWW
Join la ilgili Lütfen fikirlerinizi bekliyorum
« : 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 : 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 : 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ı: 53



Üyelik Bilgileri WWW
Ynt: Join la ilgili Lütfen fikirlerinizi bekliyorum
« Yanıtla #3 : 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:  


Turk-Php.Com Forum | SMF Forum Software © 2005, Simple Machines LLC. All Rights Reserved.