Jest to dosyć duża tablica, ma łącznie ponad 30 pól (kolumn?), wg. phpmyadmin jeden rekord zajmuje średnio 165b (czyli nie tak dużo).
Problem jest taki - obecnie znalezienie kilku rzeczy w tej tabeli zajmuje kilka sekund, np. trzy rzeczy (`tablica` LIKE '%klucz%' OR `tablica` LIKE '%klucz1% ' OR`tablica` LIKE '%klucz2%') to ponad 5 sekund... Niby nic strasznego, ale docelowo baza ma mieć kilkanaście milionów rekordów, wtedy ten czas wydłuży się kilkukrotnie..
W jaki sposób można to zoptymalizować?
Czy zrobić dodatkową tabelę, zawierającą wyłącznie słowa kluczowe (czyli rozdzielone po spacji, przecinkach itd to, co znajduje się obecnie w `tablica` + do tego numer ID z tej 'dużej' tabeli?)?
Da mi to tyle, że nie będę musiał używać LIKE %klucz%, bo będzie tylko jedno konkretne słowo (gorzej z całymi wyrażeniami, ale to też da się zrobić) i będę miał ID już konkretnych rekordów, które sobie potem spokojnie pobiorę...
A może wystarczy wydzielić do osobnej tabeli te dane, wg których przeszukuje i łączyć je przez ID?
Czy to przyspieszy sprawę?
Nie mam pomysłu, a niestety, kiedy baza się rozrośnie (a to następuje bardzo szybko) to czasy wyszukiwania pewnie bardzo się wydłużą...
Cała baza leży na VPS'ie, więc mogę w pełni konfigurować cały serwer - może optymalizację można zrobić także w plikach konfiguracyjnych?
A może przenieść się na inną bazę? (bezpłatną)
Z góry dziękuję za wszelką pomoc
