Forum » Programiranje » sql like / beseda
sql like / beseda
BRBR ::
Tole da enak resultset, see timing ...
ali se splača razbijat term field na več fieldov s posameznimi besedami zato, da bi izvajal
where f1 = "krneki" or f2 = 'krneki' or ....
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';
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 ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | SQLOddelek: Programiranje | 1115 (768) | no comment |
» | sqlOddelek: Programiranje | 735 (593) | kuall |
» | SQL vprasanje (strani: 1 2 )Oddelek: Programiranje | 8402 (5081) | BivšiUser2 |
» | Sql poizvedbaOddelek: Programiranje | 1472 (976) | zgubar |
» | mysql, insert, values, selectOddelek: Programiranje | 1844 (1671) | slosi |