- Mitglied seit
- 1 Feb 2009
- Beiträge
- 179
- Punkte für Reaktionen
- 0
- Punkte
- 0
N'abend zusammen,
folgendes Problem:
Ich habe in einer MySQL-Tabelle (mit insgesamt 14 Millionen Datensätzen) "ABC" stehen, nun soll dieser Eintrag aber auch dann gefunden werden, wenn "ABCDE" oder "ABCDEF" (Länge unbekannt) übergeben wird. Die Suche soll max. innerhalb von 1,5s durchgeführt werden.
Meine Versuche:
(Das "ABC" steht in der Spalte "prefix")
1)
Dauer: 59,38 s
2)
Dauer: 3,17 s
3)
Dauer: 2,8 s
4)
Dauer: 3,68 s
Hat sonst noch jemand eine Idee, den Query weiter zu optimieren?
Danke und Grüße,
Philipp
folgendes Problem:
Ich habe in einer MySQL-Tabelle (mit insgesamt 14 Millionen Datensätzen) "ABC" stehen, nun soll dieser Eintrag aber auch dann gefunden werden, wenn "ABCDE" oder "ABCDEF" (Länge unbekannt) übergeben wird. Die Suche soll max. innerhalb von 1,5s durchgeführt werden.
Meine Versuche:
(Das "ABC" steht in der Spalte "prefix")
1)
Code:
SELECT * FROM tabelle WHERE 'ABCDE' REGEXP concat('^',prefix);
Dauer: 59,38 s
2)
Code:
SELECT * FROM tabelle WHERE LOCATE(prefix, 'ABCDE') != 0;
Dauer: 3,17 s
3)
Code:
SELECT * FROM tabelle WHERE instr('ABCDE', prefix) > 0;
Dauer: 2,8 s
4)
Code:
SELECT * FROM tabelle WHERE 'ABCDE' LIKE CONCAT(prefix, '%');
Dauer: 3,68 s
Hat sonst noch jemand eine Idee, den Query weiter zu optimieren?
Danke und Grüße,
Philipp