![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 476 Pomógł: 96 Dołączył: 10.04.2008 Skąd: Koszalin Ostrzeżenie: (0%) ![]() ![]() |
Witam
Posiadam stronę WWW, na której użytkownicy wyszukują muzykę. Każda nowa fraza, która jest wyszukiwana jest zapisywana do bazy. W frazach istniejących aktualizowany jest licznik wyszukań. Aktualnie w dość szybkim czasie tabela zapełnia się rekordami, w miesiąc dochodzi nawet do 30-50k nowych rekordów. Przy każdym wyszukaniu cała tabela jest przeszukiwana, przez co MySQL dość mocno obciąża CPU serwera. Na razie staram się systematycznie czyścić tabele, lecz wolałbym jakieś inne rozwiązanie usprawniające/przyspieszające. Frazy jak i ilości wyszukań wykorzystywane są do chmury tagów, ostatnio wyszukiwanych oraz najlepszych dlatego wolałbym nie czyścić tabel. Zrzut tabeli
Wykonywane zapytania podczas wyszukiwania muzyki przez użytkownika
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Po pierwsze - dodaj indeks na pole search_txt. Po drugie - zastanów się nad poprawnością typów pól, jakie zastosowałeś. Wspomniany search_txt powinien być VARCHAR, a pola z datami powinny być typu DATETIME, a nie tekstowego.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 19:56 |