Situatie is als volgt: We gebruiken hier MSSQL, en we hebben een tabel met daarin alle adressen in Nederland. Kolommen zijn:
- Straat
- Plaats
- Huisnummer
- Postcode
En nog wat extra dingetjes die niet echt ter zake doen.
Het gaat hier om circa 8 miljoen records, en daar moet nogal wat in gezocht worden. We hebben daarom allerlei indexen gespecificeerd om het geheel een stuk sneller te maken. Tot zover alles goed omdat we bijv. gebruik maken van query's als:
Echter, nu willen we de volgende query gaan gebruiken:
Mijn vraag is: Is er een speciale manier om een index te specificeren voor dit soort query's? Ik las al het eea over full-text indexen, maar het werd me niet precies duidelijk hoe dit werkt, of wat dit is. Hoe zou je bovenstaande query zo snel mogelijk uit kunnen laten voeren?
- Straat
- Plaats
- Huisnummer
- Postcode
En nog wat extra dingetjes die niet echt ter zake doen.
Het gaat hier om circa 8 miljoen records, en daar moet nogal wat in gezocht worden. We hebben daarom allerlei indexen gespecificeerd om het geheel een stuk sneller te maken. Tot zover alles goed omdat we bijv. gebruik maken van query's als:
code:
Binnen luttele miliseconden hebben we het resultaat.1
2
| SELECT * FROM adressen WHERE postcode = '1234AB' |
Echter, nu willen we de volgende query gaan gebruiken:
code:
De wildcards in deze query maken het geheel verschikkelijk traag. Vooral in de grote steden (A'dam, R'dam etc.)1
2
3
| SELECT * FROM adressen WHERE straat LIKE '%hoofd%' AND plaats = 'Amsterdam' |
Mijn vraag is: Is er een speciale manier om een index te specificeren voor dit soort query's? Ik las al het eea over full-text indexen, maar het werd me niet precies duidelijk hoe dit werkt, of wat dit is. Hoe zou je bovenstaande query zo snel mogelijk uit kunnen laten voeren?