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 | 1287 (940) | no comment |
| » | sqlOddelek: Programiranje | 853 (711) | kuall |
| » | SQL vprasanje (strani: 1 2 )Oddelek: Programiranje | 9098 (5777) | BivšiUser2 |
| » | Sql poizvedbaOddelek: Programiranje | 1602 (1106) | zgubar |
| » | mysql, insert, values, selectOddelek: Programiranje | 2070 (1897) | slosi |