Merhabalar. Mysql-de şu sorguyu çalışdırınca 3 dakikaya kadar çekiyor.Ben nasıl daha optimal yaza bilirim bu sorguyu?

select u.*, d.device_id, d.name from users u inner join pass_logs p inner join devices d on d.device_id=p.device_id and u.user_id=p.user_id where u.active_status='Active' and not exists(select user_id from pass_logs where u.user_id=pass_logs.user_id and passtime BETWEEN '2014-04-25 07:00:00' AND '2014-04-25 11:00:00' ) group by u.name limit 0,1000;

Table hiyerarşisi böyle:

alt text alt text alt text

soruldu: 25 Nis '14, 05:45

Elxan's gravatar image

Elxan
135161924
cevap kabul oranı: 14%


Özellikle where den sonra kullandiginiz kolonlarda index olmasi gerekiyor. Index olmayinca ve tablolarda yogun veri varsa, select ile yapilan arama islemleri uzun sürebilir. Bir kolon icin index olusturuldugunda verilern siraya sokuldugu icin arama islemi süresi kisalmaktadir.

permanent link

cevaplandı: 25 Nis '14, 07:24

%C3%B6zcanacar's gravatar image

özcanacar ♦♦
17.2k59183183
cevap kabul oranı: 52%

Cok tesekkurler.Evet 200 saniyeden cok suren query result-u 4 saniyeye indi :)

(25 Nis '14, 07:12) Elxan Elxan's gravatar image

200 saniyeden 4 saniyeye bence çok güzel bir verimlilik artışı. Bunun için sadece WHERE koşulunda kullandığınız kolonlarımı indexlediniz?

(26 Nis '14, 01:18) zafer zafer's gravatar image

evet,bir tek passtime kolonunu indexledim

(05 May '14, 07:06) Elxan Elxan's gravatar image
Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×144

Soruldu: 25 Nis '14, 05:45

Görüntüleme: 457 kez

Son güncelleme: 05 May '14, 07:06

powered by BitNami OSQA