lostyazilim
tr.link

Hangi sorgu doğru

5 Mesajlar 700 Okunma
lstbozum
tr.link

Hamburcer Hamburcer WM Aracı Kullanıcı
  • Üyelik 03.01.2023
  • Yaş/Cinsiyet 38 / E
  • Meslek yazılım
  • Konum Ankara
  • Ad Soyad M** D**
  • Mesajlar 16
  • Beğeniler 4 / 6
  • Ticaret 0, (%0)

Aşağıdaki sorgular aynı sonuca varıyor ancak performans açısından sizce hangisi tercih edilmeli, sebep belirterek bilgilendirirseniz sevinirim.

 

Yöntem 1

$uye= DB::getRow('SELECT * FROM uyeler WHERE id=1');
if($uye){
$cv= DB::getRow('SELECT * FROM cv WHERE userid=?',array($uye->id));
}

Yöntem 2

$uye= DB::getRow('SELECT uyeler.id,cv.userid FROM uyeler inner join cv ON cv.userid=uyeler.id WHERE id=1');

Mesaj 1 defa düzenlendi. Son düzenleyen: Hamburcer (17.01.2023 23:26)

 

 

wmaraci
reklam

unsalf unsalf Ya Kod! Kullanıcı
  • Üyelik 17.08.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Freelancer Web Developer
  • Konum Samsun
  • Ad Soyad F** Ü**
  • Mesajlar 123
  • Beğeniler 14 / 14
  • Ticaret 1, (%100)
SELECT * FROM cv WHERE userid=1
 

 

unsalf unsalf Ya Kod! Kullanıcı
  • Üyelik 17.08.2016
  • Yaş/Cinsiyet 27 / E
  • Meslek Freelancer Web Developer
  • Konum Samsun
  • Ad Soyad F** Ü**
  • Mesajlar 123
  • Beğeniler 14 / 14
  • Ticaret 1, (%100)

unsalf adlı üyeden alıntı

SELECT * FROM cv WHERE userid=1

 sayfanın yapısına göre değişir . ama direk joinle alman bence daha mantıklı .

 

 

Procondio Procondio WM Aracı Kullanıcı
  • Üyelik 30.04.2016
  • Yaş/Cinsiyet 30 / E
  • Meslek Yazılım geliştirici
  • Konum Tekirdağ
  • Ad Soyad H** K**
  • Mesajlar 72
  • Beğeniler 25 / 24
  • Ticaret 1, (%100)

Elbette her sorgu için veritabanına ayrı ayrı sorgu göndermek, ayrı değişkenler oluşturmak daha verimsiz. Her değişken hafızada yer işgal ediyor, her veritabanı sorgusunda yeni bir veri aktarımı gerçekleşiyor. Yüzbinlerce kayıt olduğunda bunun etkisi görülebiliyor. Olabildiğince tek sorguda halledilmeli, aşırı spesifik bir durum söz konusu değilse JOIN kullanılmalı.

 

 

wmaraci
wmaraci

eyunus eyunus WM Aracı Kullanıcı
  • Üyelik 03.06.2018
  • Yaş/Cinsiyet 38 / E
  • Meslek Serbest
  • Konum İstanbul Avrupa
  • Ad Soyad Y** A**
  • Mesajlar 71
  • Beğeniler 9 / 8
  • Ticaret 10, (%100)

Genel kural olarak tek sorgu hazırlayıp işi mysq'e bırakmak daha doğrudur. Sizin sorunuzda yöntem2. Ama en iyi cevabı deneyerek alabilirsiniz. Bir döngü yapın her iki şekilde 100 kez çalıştırın, çalışma sürelerini ölçün, cevabı bizimle de paylaşın :  )

 

 

https://medium.com/@e-yunus
wmaraci
wmaraci
Konuyu toplam 1 kişi okuyor. (0 kullanıcı ve 1 misafir)
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al