Her bir kayıt için hesap yaptığı için olabilir, view yaratıp denediniz mi?

14 Kas 2018 Çar, saat 00:39 tarihinde Nuri Akman <nuriak...@gmail.com> ş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
>
-- 
Omer Barlas Mobil bir cihazdan gönderilmiştir, imla ve anlam hataları
olabilir.
_______________________________________________
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