Çevreye verdiğim rahatsızlıktan dolayı özür dilerim..

Yavaşlık sorununu çözdüm: TCNO için index atmayı unutmuşum :)

Selamlar,
Nuri Akman


Nuri Akman <nuriak...@gmail.com>, 14 Kas 2018 Çar, 00:37 tarihinde şunu
yazdı:

> Herkese Merhaba,
>
> Arkadaşlar, MySQL tablomda 10M+ kayıt var. Aradığım TC Kimlik No, son 3
> aya ait kayıtlar arasında var mı diye bakıyorum. Varsa, en yeni kaydı
> getirmeye çalışıyorum. Kullandığım SQL şöyle:
>
> SELECT * FROM islemler
> WHERE tckimlikno = '12345678901'
> AND islem_tarihi >= DATE_ADD(NOW(), INTERVAL -3 MONTH)
> ORDER BY kayit_id DESC
> LIMIT 1
>
> tckimlikno (varchar), islem_tarihi(date) ve kayit_id(int) için index
> tanımım var.
>
> *DURUM 1:*
> Aranan kritere uygun TC'nin kayıtlarda *olması* halinde,
> sorgu süresi 0.002 saniye ve 230 rows (explain'den bakında) görünüyor.
> Her şey güzel :)
>
> *DURUM 2:*
> Aranan kritere uygun TC'nin kayıtlarda *olmaması* halinde,
> sorgu süresi 8 saniye ve 25 rows (explain'den bakında) görünüyor.
> *Nasıl oluyor da bu sorgunun sonuçlanması bu kadar uzun sürüyor?*
>
> Selamlar,
> Nuri Akman
>
_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
https://liste.linux.org.tr/mailman/listinfo/linux-programlama
Liste kurallari: http://liste.linux.org.tr/kurallar.php

Cevap