sql >> Database >  >> RDS >> Mysql

MySQL 5.6 InnoDB Zoeken in volledige tekst

Nooit Sphinx gebruikt, maar MySQL 5.6 FTS geprobeerd op een Innodb-tafel met ongeveer 170k rijen. Een FTS index gemaakt op de naamkolom (bevat alle namen van een persoon). Een woord zoeken op een willekeurige positie van de tekenreeks MATCH(name) AGAINST("+word*") IN BOOLEAN MODE werkt een stuk sneller (2-3 keer in mijn geval) dan het gebruik van name LIKE "word%" OR name LIKE "% word" . Als u echter joins maakt, controleer dan EXPLAIN om te zien of de FTS-index daadwerkelijk wordt gebruikt. Het lijkt erop dat MySQL-optimizer niet zo goed is in het raden wanneer de FTS-index moet worden gebruikt.



  1. Vind rijen waar tekstarray een waarde bevat die vergelijkbaar is met invoer

  2. SELECTEER IN een tabelvariabele in T-SQL

  3. PHP-coderingsfout bij het produceren van XML uit database

  4. Voer een PostgreSQL .sql-bestand uit met behulp van opdrachtregelargumenten