sql >> Databasteknik >  >> RDS >> Mysql

MySQL FULLTEXT Sök över>1 tabell

Gå med efter filtren (t.ex. gå med i resultaten), försök inte gå med och filtrera sedan.

Anledningen är att du förlorar användningen av ditt fulltextindex.

Förtydligande som svar på kommentaren:Jag använder ordet join generiskt här, inte som JOIN men som en synonym för sammanfoga eller kombinera.

Jag säger i huvudsak att du ska använda den första (snabbare) frågan, eller något liknande. Anledningen till att det går snabbare är att var och en av underfrågorna är tillräckligt överskådlig för att db:n kan använda tabellens fulltextindex för att välja mycket snabbt. Att slå samman de två (förmodligen mycket mindre) resultatuppsättningarna (med UNION ) är också snabb. Det betyder att det hela går snabbt.

Den långsamma versionen slutar med att gå igenom massor av data och testa den för att se om det är vad du vill ha, snarare än att snabbt vinna ner data och bara söka igenom rader som du sannolikt faktiskt vill ha.



  1. SQL Group BY, Top N artiklar för varje grupp

  2. Måste deklarera variabeln @myvariable error med ADO-parameteriserad fråga

  3. Lagra och visa unicode-sträng (हिन्दी) med PHP och MySQL

  4. SQL Server, konvertera en namngiven instans till standardinstans?