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: Devrim GUNDUZ (devrim@gunduz.org)
Date: Wed 08 Dec 2004 - 17:11:03 EET


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Merhaba,

On Wed, 8 Dec 2004, Serdar [ISO-8859-1] KÖYLÜ wrote:

> SELECT * FROM HEDE WHERE f1=p1 or f1=p2 or f1=p3 or f1=p4
>
> Burada p3 ve p4 seçilmemişse, Bunları işleme koymak yanlıştır. Ama
> optimizasyon derseniz, mesela, istatistik olarak veritabanında en fazla
> sayıda olduğunu bildiğimiz f1 == p3 durumuna ait işlemin en başa konması
> bir optimizasyon olabilir.

Kesinlikle çok güzel bir örnek vermişsin:

test=# SELECT version();
                                                    version
- --------------------------------------------------------------------------------------------------------------
  PostgreSQL 8.0.0rc1 on i686-redhat-linux-gnu, compiled by GCC gcc (GCC) 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)
test=# CREATE TABLE serdar (c1 varchar(10));
CREATE TABLE
test=# INSERT INTO serdar VALUES ('p1'); -- (Yanlis anlama Serdar :-) )
INSERT 26117 1
...

p1 p2 ve p4'ten 4'er tane, p3'ten 7 tane girdim tabloya.

test=# EXPLAIN ANALYZE SELECT * from serdar WHERE c1='p3' OR c1='p2' OR
c1='p1' OR c1='p4';
                                                           QUERY PLAN
- ------------------------------------------------------------------------------------------------------------------------------
  Seq Scan on serdar (cost=0.00..3.42 rows=4 width=33) (actual time=0.065..0.249 rows=19 loops=1)
    Filter: (((c1)::text = 'p3'::text) OR ((c1)::text = 'p2'::text) OR ((c1)::text = 'p1'::text) OR ((c1)::text = 'p4'::text))
  Total runtime: 0.458 ms
(3 rows)

test=# EXPLAIN ANALYZE SELECT * from serdar WHERE c1='p1' OR c1='p2' OR
c1='p4' OR c1='p3';
                                                           QUERY PLAN
- ------------------------------------------------------------------------------------------------------------------------------
  Seq Scan on serdar (cost=0.00..3.42 rows=4 width=33) (actual time=0.036..0.222 rows=19 loops=1)
    Filter: (((c1)::text = 'p1'::text) OR ((c1)::text = 'p2'::text) OR ((c1)::text = 'p4'::text) OR ((c1)::text = 'p3'::text))
  Total runtime: 0.375 ms
(3 rows)

time kısmı bize Serdar'ın söylediğinin ne kadar doğru olduğunu gösteriyor.

- --
Devrim GUNDUZ
devrim~gunduz.org devrim.gunduz~linux.org.tr
                         http://www.tdmsoft.com
                         http://www.gunduz.org
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)

iD8DBQFBtxmJtl86P3SPfQ4RAhxbAJ9RS0A7J3DBycMEERQFLXexX+fRZwCgsXvv
7ZmEOrDcVXmO1KvuxXvEifE=
=6/pm
-----END PGP SIGNATURE-----

_______________________________________________
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.