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

MySQL FULLTEXT Søg på tværs af>1 tabel

Deltag efter filtrene (f.eks. tilføj resultaterne), prøv ikke at deltage og filtrer derefter.

Årsagen er, at du mister brugen af ​​dit fuldtekstindeks.

Præcisering som svar på kommentaren:Jeg bruger ordet join generisk her, ikke som JOIN men som et synonym for flette eller kombinere.

Jeg siger i bund og grund, at du skal bruge den første (hurtigere) forespørgsel eller noget lignende. Grunden til, at det er hurtigere, er, at hver af underforespørgslerne er tilstrækkeligt overskuelige til, at db'en kan bruge tabellens fulde tekstindeks til at foretage valget meget hurtigt. Sammenføjning af de to (formodentlig meget mindre) resultatsæt (med UNION ) er også hurtig. Det betyder, at det hele er hurtigt.

Den langsomme version ender med at gå gennem masser af data og teste det for at se, om det er det, du vil have, i stedet for hurtigt at vinde dataene ned og kun søge gennem rækker, som du sandsynligvis rent faktisk vil have.



  1. MySQL DB vælger poster med og uden umlyd. f.eks:'.. hvor noget =FÖÖ'

  2. bruger postgres lancerer proces, der tager alle CPU'er 100% brug

  3. Bibliotek ikke indlæst:/usr/local/opt/readline/lib/libreadline.6.2.dylib

  4. ORA-21700:objekt eksisterer ikke eller er markeret til sletning for Associative Array som inputparameter kaldet fra ODP.NET