» »

sql like / beseda

sql like / beseda

BRBR ::

Tole da enak resultset, see timing ...
SELECT term FROM tabela FORCE INDEX (id_l2)
WHERE term REGEXP  '^krneki | krneki | krneki$' AND l2 = 'de';
/* Affected rows: 0  Found rows: 23  Warnings: 0  Duration for 2 queries: 8,705 sec. */
RESET QUERY CACHE;
SELECT term FROM tabela FORCE INDEX (id_l2)
WHERE term REGEXP  '((^| )krneki )|( krneki( |$))' AND l2 = 'de';
/* Affected rows: 0  Found rows: 23  Warnings: 0  Duration for 2 queries: 15,055 sec. */


ali se splača razbijat term field na več fieldov s posameznimi besedami zato, da bi izvajal
where f1 = "krneki" or f2 = 'krneki' or ....
  • spremenil: BRBR ()

kljuka13 ::

Si morda poskusil z ustvarjanjem indeksa FULLTEXT? To potem omogoča preprostejšo (in hitrejšo?) poizvedbo:
SELECT term FROM tabela WHERE CONTAINS(product_description, 'krneki') AND l2 = 'de'; 

Spura ::

Tip hoce presledke okoli. Splitaj pred insertom in naredi to-many relacijo na termine.

no comment ::

Ampak kako je to boljše od full text indexa? Slabše performanse in več dela ponavadi ni nekaj kar bi si nujno želel...

BRBR ::

FULLTEXT, see timing. Hvala za namig.
RESET QUERY CACHE;
SELECT term FROM tabela
WHERE MATCH(term) AGAINST ('+ krneki+krneki ' IN BOOLEAN MODE)
AND L2 = 'de';
/* Affected rows: 0  Found rows: 23  Warnings: 0  Duration for 2 queries: 0,031 sec. */


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

SQL

Oddelek: Programiranje
81115 (768) no comment
»

sql

Oddelek: Programiranje
9735 (593) kuall
»

SQL vprasanje (strani: 1 2 )

Oddelek: Programiranje
688402 (5081) BivšiUser2
»

Sql poizvedba

Oddelek: Programiranje
111472 (976) zgubar
»

mysql, insert, values, select

Oddelek: Programiranje
91844 (1671) slosi

Več podobnih tem