lostyazilim
tr.link

Aynı anda 10 veri tabanına bağlanıp, içiçe veri çekmek...

22 Mesajlar 2.350 Okunma
lstbozum
tr.link

YazilimMimari YazilimMimari Eski adi: Turgay Can Kullanıcı
  • Üyelik 25.06.2012
  • Yaş/Cinsiyet 38 / E
  • Meslek Engineering Director
  • Konum İstanbul Avrupa
  • Ad Soyad T** C**
  • Mesajlar 771
  • Beğeniler 2 / 260
  • Ticaret 0, (%0)
"Bolca sorgu gelen tablolarınızın where koşulunda kullandığınız alanlara index atın, ms içinde cevaplar alırsınız"

Örnek ile anlatayım.

products tablon var.

oracle syntax'ıdır.

create table products {
id number(19) not null unique,
name varchar2(255 char) not null,
description varhcar2(1024 char) not null,
category_id number(19) not null,
seller_id number(19) not null,
create_date timestamp not null,
update_date timestamp not null,
status varchar2(50 char) not null
}

tabloda 50m kayıt var.

Sistemin içerisinde kullanıcılar anasayfa, ürün arama sayfası, ürün detay sayfası, sepette, checkout'ta bir çok yerde bu tabloya sorgu atılıyor.

Önemli nokta : Sorgu atılırken hangi koşullar ile atılıyor?

case 1 : anasayfa için mesela son güncellenen aktif 10 kayıt gelsin.. Bunun için update_date ve status alanına index atmalısın.


Oracle Sorgusu / MySQL daha farklıdır :

SELECT *
FROM (select * from products where status = 'ACTIVE' ORDER BY update_desc DESC) last_products
WHERE rownum <= 10
ORDER BY rownum DESC;


case 2 : ürün arama sayfasında, ad'a göre arama yapıldığında aktif olan kayıtların güncelleme tarihine göre listelenmesi

Burada name, status ve update_date alanında index olmalı gibi


select * from products where status = 'ACTIVE' and name like '%eti sütlü kraker%' order by update_date desc

Not : yazdıklarımda syntax vs hatası olabilir.

Index atmanın faydası select işlemlerindedir, dezavantajı ise insert/update işlemlerindedir. Ama buradaki örnekteki kayıt sayısı içinn düşünülecek bir durum dahi değildir.
BEYAZMASTER

kişi bu mesajı beğendi.

https://www.linkedin.com/in/turgaycan/
Kaliteli kod yazılır.. (Günlük/Saatlik ücreti ile)
wmaraci
reklam

BEYAZMASTER BEYAZMASTER YÜCE ALLAH'IN aciz 1 kulu Kullanıcı
  • Üyelik 04.02.2020
  • Yaş/Cinsiyet 43 / E
  • Meslek Yazılım...
  • Konum Diğer
  • Ad Soyad O** B**
  • Mesajlar 597
  • Beğeniler 154 / 153
  • Ticaret 0, (%0)

@YazılımMimarı üstadım teşekkür etmeyi unutmuşum, telafi edeyim;

Çok teşekkürler...

 

 

ÖNCE "İYİ,DOĞRU,GÜZEL BİR İNSAN" OLMAK (VEFA,TEVAZZU,NAİFLİK,SAYGI,...) GEREK!
Sonra wm oluruz.
Site Ayarları
  • Tema Seçeneği
  • Site Sesleri
  • Bildirimler
  • Özel Mesaj Al