"Sor" anahtar sözcüğüyle bir SQL sorgusu ön eklediğimizde bazı sütunlara sahip bir tablo alırız. Lütfen "type" sütununun ne olduğunu söyle. Bu bağlamda eq_ref
ve ref
ne anlama gelir.MySQL'de eq_ref ve ref türlerinin anlamı nedir
cevap
...
eq_ref - Eğer iki tablo olduğunu düşünün. Kimliği birincil anahtar olan sütunlarla (kimlik, metin) bulunan Tablo A. Kimliği, birincil anahtar olan aynı sütunlara (kimlik, metin) sahip Tablo B. Çok hızlı çünkü
select A.text, B.text where A.ID = B.ID
Bu KATILDIĞI
1, world!
2, you?
A ve B arasındaki birleşim olarak eq_ref düşünün:
1, Hello
2, How are
Tablo B, aşağıdaki verileri var Tablo A, aşağıdaki verileri yer alır Tablo A'da taranan her satır için, B tablosunda JOIN koşulunu karşılayan sadece ONE satırı olabilir. Bir ve birden fazla değil. Bunun nedeni B.id'in UNIQUE olmasıdır. Burada sunucu tarafında işlemeyi gösteren bir sözde kod şunlardır:
foreach (rowA in A)
{
if (existsInBRowWithID(rowA.id)
{
addToResult(rowA.text, getRowInBWithID(rowA.id).text);
break;
}
}
ref - Şimdi sütunlarla başka tablo C (id, metin) hayal hangi kimliği bir indeks ama olmayan bir EŞSİZ bir yer.
foreach (rowA in A)
{
foreach (rowC in C)
{
if (rowA.id == rowC.id)
{
addToResult(rowA.text, rowC.text);
}
}
}
: Burada
select A.text, C.text where A.ID = C.ID
sunucu tarafındaki işleme gösteren bir sahte kod gibidir: A ve C arasında katılmak gibi
1, John!
1, Jack!
ref düşünün: Tablo C, aşağıdaki verileri yer alır
Bu JOIN, birincisi kadar hızlı DEĞİL, çünkü tablo A'da taranan her satır için, JOIN con'yu tatmin edebilen C tablosunda SEVERAL olası satırları var dition (yukarıdaki döngüde kesinti yok). Çünkü C.ID, UNIQUE DEĞİLDİR.
Bunu umut olur ...
Cheerz!
teşekkürler dostum, anladım .... Bu gerçekten yararlı bir açıklama oldu ..... –
mükemmel bir açıklama! – julestruong
"type", isteğinize bağlı birleştirme türünü belirtir.
- sistem
- const
- eq_ref
- ref
- aralık
- endeksi
- tüm
Sen bulacaksınız: En iyi itibaren en kötü, burada listesidir MySQL d'de daha ayrıntılı bir açıklama ocumentation: Bir açıklama çalışacağım http://dev.mysql.com/doc/refman/5.0/en/explain-output.html
evet, teşekkür ederim, ama bunu aramıyorum ... Bu sistemde hangi sistemin ve kurgunun anlamını anladım .... ama eq_ref ve ref ne anlama geliyor? Ben mysql belgelerindeki açıklamaları okudum ama anlayamadım .... –
- 1. Firebase - Ref ve çocuk arasındaki fark nedir?
- 2. 'ref' özniteliğinin gerçek amacı nedir?
- 3. svg anlamı nedir? Svg?
- 4. CV_INSTRUMENT_REGION anlamı nedir()?
- 5. os.error'un anlamı nedir?
- 6. ByKey için anlamı nedir (_ ++ _)
- 7. Bir günlük kütüphanesinin anlamı ve amacı nedir?
- 8. OpenSSL'nin EVP anlamı nedir?
- 9. Anlamı nedir? #: 3?
- 10. Rspec'in anlamı nedir?
- 11. Python'da '_' anlamı nedir?
- 12. Bu sözdiziminin anlamı nedir?
- 13. _branch_match_id ifadesinin anlamı nedir?
- 14. PHP'de bunun anlamı nedir?
- 15. NfDump Obyt'in anlamı nedir?
- 16. Ref Parametreler ve yansıma
- 17. Tür bildirme sınıfının anlamı nedir?
- 18. {$ C PRELOAD} yönergesinin anlamı nedir?
- 19. İki Functor oluşturmanın anlamı nedir?
- 20. Swift'deki "!" Öneki gerçek anlamı nedir?
- 21. loadNibNamed'i kullanırken sahibin anlamı nedir?
- 22. "Thread dump" ifadesinin anlamı nedir
- 23. __get() & __set() yöntemlerinin anlamı nedir?
- 24. Simulink'te bu sayıların anlamı nedir?
- 25. sorgusunun anlamı nedir *: lucene'deki değer nedir?
- 26. Bir işlev prototipinin anlamı nedir?
- 27. Açık kayıt modelinin anlamı nedir?
- 28. $ # dizisini önceden artırmanın anlamı nedir?
- 29. "~ 2, bursted" çekirdeklerinin anlamı nedir?
- 30. “$ {x %% *}” ifadesinin sh anlamı nedir?
Lütfen bir örnek verin! – Tobias