Re: [Linux-programlama] MYSQL Sorgusunda istediğim sonucu alamıyorum

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: Erdal YAZICIOGLU (eyazicioglu@yahoo.com)
Date: Mon 06 Dec 2004 - 17:20:05 EET


Cevap için teşekkürler,

Parantezler sayesinde istediğim sonucu elde ettim. Şu
an veri tabanında çok fazla bilgi yok. Yeni bilgi
girlmeye başlandı. Veri tabanının şu anki büyüklüğü en
fazla 1MB. Ancak her gün veri giriliyor. Şu an için
performans da herhangi bir sorun yaşamıyoruz ancak
ilerisi için kod optimazyonun da verdiğiniz öneriyi
göz önüne alıcam. Yanlış anlamadıysam her status e
0,1,2,3,4 gibi int değerler vererek döngüyü
çalıştırmamı tavsiye ediyorsunuz.

Tekrar teşekkür ederim

Erdal

--- Serdar KÖYLÜ <serdarkoylu@fisek.com.tr> wrote:

> Selamlar..
>
> > Elimdeki form da arzann durumunu bildiren bir veri
> > geliyor.
> >
> > select * from dict_events where
> serialNumber='11111'
> > and status=$status[0] or status=$status[1] or
> > status=$status[2] or status=$status[3] or
> > status=$status[4]
> >
> > Form da sadece status lerden birini iaretlediimde
> > doru bilgiyi veriyor. Yani Seri Numarasna gre
> > sorguyu altryor. Ancak Bir den fazla seince veri
> > tabanndaki kritere uyan tm eventleri ekrana dkyor.
> > Bu sorguyu nasl yazmanlym ki sadece girilen seri
> > numarasna gre seili statuleri ekrana dktrsn...
>
> Sanırım,
>
> select * from dict_events where serialNumber='11111'
> and (status=$status[0] or status=$status[1] or
> status=$status[2] or status=$status[3] or
> status=$status[4])
>
> işinizi görecektir.
>
> Bu tür kodlar, gereksiz CPU Yükü, gereksiz bellek
> yükü, gereksiz disk
> I/O yükü vs. oluşturur. Bu tür basit sorunlarda dağ
> gibi birikir,
> sonuçta uygulamayı zorlamaya başlar.
>
> Burada sunucuyu bu kadar kastırmak yerine, sadece
> gerekli olan
> status check'i yaptırsanız, daha iyi olur. Bunun
> için, örneğin, status
> için string yerine enum veya int gibi bir veri tipi
> kullanıp daha sonra
> kod içinde sadece seçili status'lar için bir "where
> part" oluşturabilirsiniz.
>
> $sql = select * from dict_events where
> serialNumber='11111';
> $where = "";
> for ($n == 0; $n < 5; $n++) {
> . if ($status[$n])
> . $where .= "or status=$n ";
> }
>
> if ($where != "") {
> . $where = " and (" . substr($where, 2) . ")";
> . $sql .= $where;
> }
>
> $sql .= ";"
>
> Gibi bir şey iyi olabilir. Yukarıdaki kod sadece
> örnek bir algoritmayı
> gösteriyor, uygulamada ne çıkar bilemem :(
>
> Saygı ve sevgiler..
>
>
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
>
http://liste.linux.org.tr/mailman/listinfo/linux-programlama
>

                
__________________________________
Do you Yahoo!?
Yahoo! Mail - 250MB free storage. Do more. Manage less.
http://info.mail.yahoo.com/mail_250

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.