| From: | "N(dot) Can KIRIK" <can(at)epati(dot)com(dot)tr> |
|---|---|
| To: | Yavuz Selim Bilgin <ysb(at)ysbilgin(dot)com> |
| Cc: | Omer Barlas <omer(dot)barlas(at)gmail(dot)com>, "pgsql-tr-genel(at)postgresql(dot)org" <pgsql-tr-genel(at)postgresql(dot)org> |
| Subject: | Re: [pgsql-tr-genel] Limitten az içerik olan sorguların uzun sürmesi |
| Date: | 2016-03-29 19:10:56 |
| Message-ID: | CAJ1wP5n2eZo=jm3rf=GUXMLFLHh402wO23-BP01isjP3ExWdmg@mail.gmail.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-tr-genel |
merhaba,
sorguya bir de order ekleyip, status index'ine de bu sıralama alanını da
eklerseniz index'ten tam faydalanmaya başlarsınız.
postgresql order by kullanmadığınız sürece kayıtların hangi sıra ile
geleceğini garanti etmiyor. ayrıca çok sayıda kayıt var ve bu gibi
durumlarda kayıtları çok al bölmelere ayıran indexleri kullanmak yerine
sıralı aramaya geçebiliyor.
tarif ettiğim şöyle:
SELECT * FROM "comments" WHERE "status" = 1 ORDER BY "commentTime" DESC
OFFSET 0 LIMIT 25;
SELECT * FROM "comments" WHERE "status" = 0 ORDER BY "commentTime" DESC
OFFSET 0 LIMIT 25;
CREATE INDEX "idx_comment_status" ON "comments" ( "status", "commentTime"
DESC );
*N. Can KIRIKePati Bilişim Teknolojilerihttp://www.epati.com.tr/
<http://www.epati.com.tr/>*
2016-03-29 19:00 GMT+03:00 Yavuz Selim Bilgin <ysb(at)ysbilgin(dot)com>:
> Elbette, index var status kolonunda.
>
> --
> Yavuz Selim Bilgin
>
> Açık 29 March 2016 burada 18:58:19, Omer Barlas (omer(dot)barlas(at)gmail(dot)com)
> yazdı:
>
> status kolonuna index tanımlamayı denediniz mi?
>
> 29 Mart 2016 18:52 tarihinde Yavuz Selim Bilgin <ysb(at)ysbilgin(dot)com> yazdı:
> > Merhabalar,
> >
> > Şöyle bir problem yaşıyoruz, sorguları özetleyerek yazıyorum,
> >
> > comments tablosunda 7 milyon civarı kayıt var.
> >
> > select * from comments where status=1 offset 0 limit 25 ; // 0.06
> saniyede
> > dönüyor - 25 kayıt
> > select * from comments where status=0 offset 0 limit 25 ; // 5 saniyede
> > dönüyor - 17 kayıt
> >
> > Okuduğum kaynaklarda benzer durumlarda status'u 0 olan 25 tane kayıt
> > bulamadığı için tablonun sonuna kadar gidiyor, ondan dolayı uzun sürüyor
> > yazıyor ama bir çözüm bulamadım bu duruma.
> >
> > Nasıl optimize edebiliriz acaba bu sorguyu?
> > Ben geçici olarak önce count alıp, onu limit'e veriyorum, sorgu hızlandı
> > böylece ama tel maşa bir çözüm oldu bu şekilde.
> >
> > Teşekkürler iyi çalışmalar,
>
>
>
> --
> Omer Barlas
> omer(dot)barlas(at)gmail(dot)com
>
>
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Atilla Balci | 2016-03-30 19:47:44 | Postgres de like in sorgusu nasıl yapılır ? |
| Previous Message | Yavuz Selim Bilgin | 2016-03-29 16:00:23 | Re: Limitten az =?utf-8?Q?i=C3=A7erik_?=olan sorguların ?=uzun =?utf-8?Q?sürmesi |