![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 5.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Z racji tego, że wykorzystałem InnoDB nie moge skorzystać z FULLTEXT więc musiałem zrobić wyszukiwarke na LIKEach. Strona jest oparta o framework CodeIgniter i do budowy zapytań skorzystałem z Active Records.
Obecnie dopiero piszę i na bieżąco testuje stronę na localhoscie (WampServer Version 2.2, MySQL 5.5.24-log) no i akurat mam taki mały problem z tą wyszukiwarką, że działa ale muli. Dlatego proszę o jakieś wskazówki jak możnaby to zoptymalizować/przyśpieszyć. Pozdrawiam Rav |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jest kilka rozwiązań tego problemu, niektóre nie wykluczają się wzajemnie:
- użycie osobnej tabeli (na silniku myisam) plus fulltext search - zrezygnowanie z modeli orm na rzecz bezpośrednich zapytań do bazy danych - użycie zewnętrznego silnika wyszukiwarki, np. Lucene/Solr albo Sphinx Dla większych projektów polecam to ostatnie rozwiązanie, szczególnie Solr. Ten post edytował darko 12.08.2012, 18:24:35 -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 5.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Hmm... chyba skorzystam z klona na MyISAM i dodam FULLTEXT.
Czyli teraz będę musiał zmodyfikować kod tak, żeby wszystkie akcje które się dzieją na tej oryginalnej (InnoDB) działy się też na klonie MyISAM. Co prawda teraz zamiast jednego zapytania INSERT, UPDATE, DELETE będą dwa bo jeszcze trzeba klona obsłużyć. Trzeba będzie to jeszcze jakoś zsynchronizować, żeby indeksy się zgadzały. Mam nadzieję, że to załatwi sprawę. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 709 Pomógł: 176 Dołączył: 24.10.2010 Ostrzeżenie: (0%) ![]() ![]() |
Myślę, że zamiast klonowania zapytań spokojnie można sobie poradzić mechanizmem triggerów w mysql.
Jednak tak jak Darko napisał, jeżeli projekt jest większy i masz taką możliwość to skorzystaj z zewnętrznych mechanizmów indeksowania i wyszukiwania treści. Solr pod tym względem wydaje się przodować chociaż dopiero 1 raz zapoznałem się z nim całkiem niedawno. -------------------- http://d3ut3r.wordpress.com/ | mysql_* jest przestarzałe UŻYWAJ PDO!
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 66 Pomógł: 0 Dołączył: 5.07.2007 Ostrzeżenie: (0%) ![]() ![]() |
Myślę, że zamiast klonowania zapytań spokojnie można sobie poradzić mechanizmem triggerów w mysql. Jednak tak jak Darko napisał, jeżeli projekt jest większy i masz taką możliwość to skorzystaj z zewnętrznych mechanizmów indeksowania i wyszukiwania treści. Solr pod tym względem wydaje się przodować chociaż dopiero 1 raz zapoznałem się z nim całkiem niedawno. Fakt, zapomniałem o triggerach ![]() Co do Solr to nie wiem czy serwer docelowy będzie go obsługiwał. Narazie wszystko powstaje na localhost i mogę sobie łatwo doistalować to czego mi brakuje. Chodzi o to, że jak napakuje super-hiper rozwiązań to może się okazać, że jedynym wyjściem będzie kupno drogiego dedyka zamiast hostingu. Nie chciałbym dodatkowo narażać kogoś na koszty. Niemniej jednak przyjrzę się i temu rozwiązaniu bliżej ![]() Pozdrawiam Rav |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 885 Pomógł: 463 Dołączył: 3.10.2009 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Solr'a na zwykłym, "gołym" hostingu (bez dostępu do ssha, konfiguracji firewalla i screena) nie odpalisz, ale możesz śmiało testować lokalnie.
Ten post edytował darko 13.08.2012, 14:53:23 -------------------- Nie pomagam na pw, tylko forum.
|
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 15:40 |