Hallo alle zusammen,
Ich habe da folgendes Problem mit mysql:
Ich mache eine Anfrage mit Match Against die so aussieht:
Meine my.cnf sieht bereits so aus:
skip-locking
key_buffer = 64M
max_allowed_packet = 1M
table_cache = 64M
sort_buffer_size = 64M
net_buffer_length = 8K
tmp_table_size = 128M
read_buffer_size = 32M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
query_cache_size = 32M
query_cache_limit = 2M
Nun wenn es 10000 Ergebnisse gibt dann geht die Suche in 0,1 Sekunden, aber bei 300 000 geht es schon viel langsamer.
Ich denke dass es das ORDER BY `score` DESC ist was die Sache langsam macht da dieses Order By nicht durch einen index erstellt werden kann.
Nun ist die Frage: Gibt es da einen Trick damit die Suche immer etwa gleich schnell bleibt?
Ich habe da folgendes Problem mit mysql:
Ich mache eine Anfrage mit Match Against die so aussieht:
Code:
SELECT HIGH_PRIORITY *, MATCH (`domain`,`titel`,`keywords`, `description`, `body`) AGAINST ('Suchwort') AS score FROM `websites` WHERE MATCH (`domain`,`titel`,`keywords`, `description`,`body`) AGAINST ('+Suchwort' IN BOOLEAN MODE) ORDER BY `score` DESC LIMIT 0, 10
skip-locking
key_buffer = 64M
max_allowed_packet = 1M
table_cache = 64M
sort_buffer_size = 64M
net_buffer_length = 8K
tmp_table_size = 128M
read_buffer_size = 32M
read_rnd_buffer_size = 4M
myisam_sort_buffer_size = 64M
query_cache_size = 32M
query_cache_limit = 2M
Nun wenn es 10000 Ergebnisse gibt dann geht die Suche in 0,1 Sekunden, aber bei 300 000 geht es schon viel langsamer.
Ich denke dass es das ORDER BY `score` DESC ist was die Sache langsam macht da dieses Order By nicht durch einen index erstellt werden kann.
Nun ist die Frage: Gibt es da einen Trick damit die Suche immer etwa gleich schnell bleibt?