Mam bazę danych mysql, w której użytkownicy mogą wprowadzać tekst. Następnie muszą mieć możliwość wyszukania tego tekstu. Właśnie zaimplementowałem wyszukiwanie pełnotekstowych mysql i zdecydowanie przyspieszyło wyszukiwanie.Wyszukiwanie za pomocą pełnego tekstu MySQL: potrzeba szybkiego wstawiania i szybkiego wyszukiwania.
Jednak nie dziwi, że wkładki są wolniejsze. Ale byłem zaskoczony, jak wolniej. Pojedyncza wkładka może trwać od 0,5 do 1,5 sekundy.
tabela ma 3 indeksowanych kolumn:
title (max length 200)
description (max length 3000)
content (max length 10000)
Mam tylko około 2000 rekordów w tabeli w tym momencie, co jest niczym w porównaniu do tego, co będzie później.
Wszelkie sugestie? W jaki sposób problem jest zwykle rozwiązywany? Czy to normalne, że wkładka zajmuje tak długo?
Nie potrzebuję wszystkich możliwości wyszukiwania pełnotekstowego. Po prostu potrzebuję odpowiednika AND, OR, -, +, "". Więc nie ma ciężarów itp. Czy to indeksowanie można zmienić, aby było szybsze?
MySQL 'indeksy FULLTEXT', ze względu na fakt, że są one zawsze zsynchronizowane z danymi, rzeczywiście spowalnia zapisywanie do stołu. Istnieją rozwiązania innych firm, takie jak [Solr] (http://lucene.apache.org/solr/) lub [Sphinx] (http://sphinxsearch.com/), które łączą się z bazą danych i budują własne indeksy (oddzielne od modyfikacji danych) i dlatego nie wpływają na wydajność zapisu MySQL. Prezentacja Billa Karwina [Przekreślenie pełnego tekstu] (http://www.slideshare.net/billkarwin/practical-full-text-search-with-my-sql) to doskonałe porównanie opcji. – eggyal
Właśnie zainstalowany sfinks. To jest zajebiste. Korzystanie z indeksowania rt. Szybkie wstawianie i wyszukiwanie. – user984003