![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 0 Dołączył: 29.05.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
jestem w tym temacie zasadniczo początkujący, dlatego mam na wstępie kilka pytań. Pierwsze, teoretyczne bardziej, to czy wykonanie procedury jest atomowe, tzn. objęte jedną transakcją (mam nadzieję, że mimo, iż pewnie źle to nazywam wiadomo o co chodzi (IMG:style_emoticons/default/smile.gif) ). Drugie pytanie jest już bardziej praktyczne. Mianowicie robię prostą stronę, w której będzie wyszukiwarka. Do tej pory robiąc wyszukiwanie korzystałem z LIKE, jednak czytałem o jego wadach. Chciałbym korzystać z AGAINST MATCH, gdyż jest podobno lepsze, ale mam table InnoDB. Czy zatem taki trick, że będę dublować tabele, wyszukiwać w tabeli myisam, a wszystkie inne dane w tabeli InnoDB. Można by np po stronie mysql napisać do tego procedurę. Co sądzicie o takim rozwiązaniu? Zależy mi na wydajności, ale też dobrym wyszukiwaniu (wiem, że istnieją silniki do wyszukiwania pełnotekstowego, ale nie na poziomie php, więc nie chciałbym z nich korzystać). Jakie są Wasze przemyślenia na ten temat? Opłaca się takie coś stosować? Też pytanie o zalety InnoDB nad myisam, bo być może tabele z podstronami zrobić w myisam (wówczas tracę możliwość transakcji z udziałem tej tabeli, co też nie za bardzo mi się podoba). Proszę o Wasze opinie... z góry dzięki |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Co zamiast MyIsam
Sposobów na wyszukiwanie jest w cholere więcej. Możesz użyć n-gramów i będzie spoko. Możesz również użyć Sphinxa - jeszcze lepiej. MyIsam : InnoDb -> MyIsam Także jeżeli pomimo wszystko chcesz używać myisam do wyszukiwania to triggerem możesz kopiować zawartość pola z tabeli InnoDB do MyISAM (po to żeby zaoszczędzić miejsce). Przy wyszukiwaniu pobierasz tylko ID komentarza z tabeli MyIsam
Oczywiście rodzi to jeden problem. Dane kopiowane w triggerze nie zostaną objęte transakcją, także nie ma szansy zrobić rollbacka aczkolwiek możesz to obejść przez odpalenie co jakiś czas skryptu czyszczącego MyIsam z rekordów, które nie istnieją w drugiej tabeli. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 28.09.2025 - 04:30 |