SORU
15 Aralık 2013, Pazar


MySQL Sorgu Rastgele Kalıyor

Şuna benzer bir sorgu var:

SELECT id FROM user WHERE id='47'

KİMLİĞİ endeksli olduğunu ve bu sorgu, profil verileri kullanarak her zaman hızlı, bu gibi okur.

SET profiling = 1;
SHOW PROFILES;

Sorgular her zaman etrafında 0.0002 saniye içinde yürütmek.

Ben ancak, bu gibi PHP taraftan: sorgu profili

$current = microtime(true);
$data = $conn->query($full_query);
$elapsed = microtime(true) - $current;

Sonrabazenbelki de bu sorgu 1 50 .2 saniye gibi bir şey olacak. Ancak, benim test komut dosyası var kod için test bu profiller sorgu kullanarak profilleme = 1; rağmen PHP tur ile PDO olabilir .2 saniye sorgu zaman oldu hala 0.0002.

Bir şeyler biliyorum, ya da bu soruna neden olmadığını biliyoruz:

  1. Sorgu yavaş değil. Baktığımda aynı sorgu aynı sorgu çalıştırmak, profilli PHP ve profilli kullanarak PROFİL oluşturma sorgu her zaman hızlı ve asla giriş yavaş sorgu günlüğüne bile gösteriyor alarak .2 saniye ile PHP tarafında.
  2. Bu adı skip-gidermek-bu tutarsız ve - Adı-gidermek atlamak var zaten ilgili değil
  3. Bu sorgu önbelleği ile ilgili değil, davranışı var
  4. Bu davranış bile sorgu önbelleği çıkan olur.
  5. Sorgu aslında KİMLİĞİ seçin gelmez, ama bu alan kesinlikle endeksli olduğu için disk erişimi bir sorun olmadığını göstermek için test etmek için bu sorguyu kullanıyorum.
  6. Bu tablolar sadece 10-20 1 meg bir dizin gibi bir şey ile megs. Makine çok az yük gösterir ve bunu kendi arabellekleri kullanarak değil.
  7. Bu ona karşı başka etkinlik test sorularına dışında olan bir tabloya karşı test edilmiştir.

Herkes kontrol etmek için ne herhangi bir fikir var mı? Bu benim için bir ağ sorunu gibi görünüyor, ama onu görmek ve sorunu düzeltmek için bulmak mümkün olmak istiyorum ve yerin yanındaki onay için koşuyorum. Herhangi bir fikir?

CEVAP
18 Aralık 2013, ÇARŞAMBA


Makine Profil istiyorum.

Bu ~1 saniyede 50 defa ve her sorgu 0.2 sn bir kriter olduğunu söylüyorlar. Ekranda üst koymak, ve yük testi için PHP sorgular bir döngü İÇERİSİNDE çalışma ve performans istatistikleri toplamak gerekir.

Muhtemelen daha fazla 50 * 0.2 = çalıştırmanız gerekir10 seconds, "1 50" istatistik muhtemelen bir açıklama okudum. neye dayanarak el-çalışan tek tek sorgulara göre - beri 30 saniye ve 90 saniye yük testleri deneyin.

Bu süre zarfında, top işlem ekranı izle. P tuşuna basarak CPU göre sıralayın. Her zaman 'P' olduğundan emin olun işlem CPU kullanımı, en çok tüketen üstüne. sıralama düzenini değiştirecek basın (bellek kullanımı M basarak sıralar. daha fazla kontrol the man page)

Zaman(s) yük test sırasında çıkacak her şeye bak. Bir şey atlamak görmek gerekirdaha yüksek- ancak bir an için.
(dikkat, Bu bir süreç, listenin üst — gerek yok, ama yine de disk yük veya diğer etkinliklerin yeterince tanıtmak olabilir MySQL sunucu lag ulaşabilirsiniz

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AutoStream's Garage419

    AutoStream's

    15 EKİM 2007
  • Matt Stokes

    Matt Stokes

    22 Ocak 2008
  • Sali Kaceli

    Sali Kaceli

    24 ŞUBAT 2009