MySQL tam metin araması ve Mysql dizinler

Image representing MySQL as depicted in CrunchBase

Bir süre önce hakkında yazdı MySQL tam metin araması 🙂 Bugün bir çok ilginç bir sorgu ile deneyimi vardı. Genel olarak, sorgu sonuçlar için başka bir tablo eksik olan arıyor. A alt osnovne seçin ve bölümünde seçin nereye uygulama. Genel olarak, iskelet ve

SELECT DISTINCT (
`field`
)
FROM `table1`
WHERE `someID` =44
AND `firsTextField` NOT
IN (

SELECT DISTINCT (
`secondTextField`
)
FROM `table2`
WHERE `otherID` =44
)

Genel olarak, basit bir istek. Bunun için yazdı 30 SN onu serbest ve makine sıkışmış. Bir uzun ve sabırla benim tarafında ya da sadece bekledikten sonra ~ 43 sn . Benim puanı lol tükürmek . Pfff tımarhane. Görünümlü CPU normalde neredeyse boşta kalma koşulu yüklü makine girin. Şok ve dehşet. Sorguyu çalıştırmak yine aynı sonucu hala. Lanet olsun WTF. Sorguyu çalıştırmak ve her şeyi açıklamak ben – Sadece secondTextField ikinci alandır tam metin arama Dizin yok, ve yaklaşık 35 k hattının mütevazı bir tepsi. Ne okumak için – tam metin arama dizini değil. Bu gerçekten hızlı bir sorun zaten açıktır

ALTER TABLE `links` ADD INDEX ( `linkUrlID` ) 

Ve şeyler sorgusunun geçen yerler döndü 0.0005 sn 😀

Endeksleri onları koymak nasıl dikkatli olun uygulama, marjinal oranı üzerinde bağlıdır.

Sadece bu dizin tam metin arama yöntemi 😀 kullanarak değil çünkü eksik olduğu için s. s bir bütün olarak yukarıdaki durum hakkında yanlış değilim

Zemanta tarafından geliştirilmiş

Cevap bırakın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar işaretlendi *

Anti SPAM *