stroju
4.01.2014, 16:48:00
Posiadam bazę danych o rozmiarze kilku GB, z ponad 300 000 rekordów, obecnie wygląda to tak że jest podział na tabele z newsami, artykułami, produktami itp, wszystko co ma treść w swojej tabeli ma też id, aby łatwo można znaleźć co trzeba, jest osobna tabela z wyrazami, ich id oraz ilością wystąpień z treściach, do każdej tabeli z treściami jest osobna tabela powiązań słów wyszukiwarki z konkretnymi elementami treści, w ten sposób można zaleźć wszystko, jednak już od dłuższego czasu skrypt działa powoli, wyszukiwanie zajmuje sporo czasu a sam rozmiar bazy danych nie jest wcale mały.
Baza jest zapisywana z systemie innodb, zatem wyszukiwanie metodą fulltext nie może być rozwiązaniem.
Zna ktoś jakąś metodę która pomogła by z tego typu wielkościami baz danych? Przebudować całą bazę, a może przechowywać dane z inny sposób, czy w ogóle jest coś wygodniejszego i wydajnego od baz SQL?
Crozin
4.01.2014, 17:37:05
Cytat
Baza jest zapisywana z systemie innodb, zatem wyszukiwanie metodą fulltext nie może być rozwiązaniem.
MySQL od wersji 5.6 wspiera FTS w InnoDB. Jeżeli korzystasz z wersji <= 5.5 możesz utworzyć dodatkową tabelę, przechowującą kopię danych w systemie MyISAM.
Cytat
Zna ktoś jakąś metodę która pomogła by z tego typu wielkościami baz danych? Przebudować całą bazę, a może przechowywać dane z inny sposób, czy w ogóle jest coś wygodniejszego i wydajnego od baz SQL?
Zewnętrzny, dedykowany wyszukiwaniom system, np. Apache Solr czy Sphinx.
stroju
4.01.2014, 17:55:05
hmm, nie czytałem o tym ale zapoznam się z tematem, aktualizacja to nie problem.
?
a co do systemu to Sphinx o którym mówisz to
Ten ?
Crozin
4.01.2014, 18:30:49
Tak, o tego Sphinxa mi chodziło. Tutaj masz krótką listę dostępnych narzędzi tego typu:
http://en.wikipedia.org/wiki/Category:Free...engine_software
stroju
4.01.2014, 22:41:00
A masz już może doświadczenia z którymś? Może jakieś rady, propozycje masz co do tego?
Crozin
5.01.2014, 10:05:45
Solr jest niezwykle prosty w obsłudze oraz daje spore możliwości.