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

optimer tabeller til søgning ved hjælp af LIKE-klausulen i MySQL

Du bør enten bruge fuldtekstindekser (du sagde, du ikke kan), designe en fuldtekstsøgning på egen hånd eller afloade søgningen fra MySQL og bruge Sphinx/Lucene. Til Lucene kan du bruge Zend_Search_Lucene implementering fra Zend Framework eller bruge Solr.

Normale indekser i MySQL er B+Træer, og de kan ikke bruges, hvis starten af ​​strengen ikke er kendt (og det er tilfældet, når du har jokertegn i begyndelsen)

En anden mulighed er at implementere søgning på egen hånd ved hjælp af referencetabel. Opdel tekst i ord og opret tabel, der indeholder word, record_id. I søgningen opdeler du derefter forespørgslen i ord og søger efter hvert af ordene i referencetabellen. På denne måde begrænser du dig ikke til begyndelsen af ​​hele teksten, men kun til begyndelsen af ​​det givne ord (og du vil alligevel matche resten af ​​ordene)



  1. Oracle CASE kortslutning virker ikke i gruppe af

  2. Wordpress brugerdefineret databasetabel genkendes ikke

  3. Oracle SQL CASE WHEN ORA-00932:inkonsistente datatyper:forventet CHAR fik NUMMER 00932. 00000 - inkonsistente datatyper:forventet %s fik %s

  4. Få en returværdi i C# asp.net fra en lagret procedure (syntaksproblem)