Announcement

Collapse
No announcement yet.

ORDER BY mit MATCH AGAINST

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • ORDER BY mit MATCH AGAINST

    Hallo alle zusammen,

    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
    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?
Working...
X