sql >> Database teknologi >  >> RDS >> Mysql

MySQL 5.6 InnoDB fuld tekstsøgning

Har aldrig brugt Sphinx, men prøvede MySQL 5.6 FTS på et Innodb-bord med omkring 170.000 rækker. Lavet et FTS-indeks på navnekolonnen (indeholder alle navne på en person). For at finde et ord i en hvilken som helst position af strengen MATCH(name) AGAINST("+word*") IN BOOLEAN MODE virker meget hurtigere (2-3 gange i mit tilfælde) end at bruge name LIKE "word%" OR name LIKE "% word" . Men når du laver joins, skal du kontrollere EXPLAIN for at se, om FTS-indekset rent faktisk bruges. Det ser ud til, at MySQL optimizer ikke er så god til at gætte, hvornår FTS-indekset skal bruges.



  1. Finder du indlæg med tag1 OG tag2? (ved hjælp af en join-tabel) Eksisterer / Har / underforespørgsler... Hvad skal man bruge?

  2. Amazon DynamoDB - Design af borde baseret på venskaber

  3. Hvordan kan jeg se forespørgselstider med høj præcision i mysql-kommandolinjen?

  4. Hvordan kan jeg skifte fra SQL Server Windows-tilstand til blandet tilstand (SQL Server 2008)?