![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 5 Dołączył: 22.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witajcie!
Stworzyłem sobię tabelę, w której trzymam dane (chwilowo ok 1,5K rekordów). Starałem się, aby baza działała jak najszybciej, wszystko ok... do czasu Tabelka składa się z pól INT / BIGINT / TINYINT / VARCHAR(64 - 255) / ENUM(2 wartości) / DOUBLE / TIMESTAMP / i nieszczęsne pola LONGTEXT Do bazy nie dodaję żadnych rekordów, jedynie je modyfikuję. Z początku baza działa jak należy, niestety z czasem zaczyna coraz bardziej zwalniać. Po 2 dniach zapytanie trwa ponad 1 sekundę(!). Optymalizacja bazy znów przywraca jej pierwotną prędkość. Dane wyszukuję głównie po polach INT / BIGINT itd. na główne pola wg. których sortuję / szukam są indexy (w tym primary). Czy powodem takiego spowolnienia bazy może być fragmentacja danych ze względu na pole LONGTEXT? Czy pomoże jego zamiana na varchar? Jak inaczej mogę przyspieszyć bazę? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
zrob EXPLAIN na zapytaniu które ci muli a może sie rozjasni male co nie co
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 5 Dołączył: 22.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
Kod id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE s ref typ,fails_to_del,state state 1 const 1212 Using where; Using temporary; Using filesort 1 SIMPLE t ALL PRIMARY NULL NULL NULL 2 Using where Coś takiego |
|
|
![]()
Post
#4
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
No i pokaż jeszcze to zapytanie
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 65 Pomógł: 5 Dołączył: 22.01.2010 Ostrzeżenie: (0%) ![]() ![]() |
EXPLAIN SELECT * FROM ` v_lista_wyswietlane`; //Zwykle jest limit x, x+30
struktura widoku v_lista_wyswietlane: CREATE VIEW v_lista_wyswietlane AS SELECT rank, nazwa_pelna, hostname, ip, onlineplayers, maxplayers, map, platform, secure, os, typ, country FROM serwery AS s JOIN typy as t ON s.typ = t.id WHERE s.state='online' AND fails_to_del > 0 ORDER BY rank ASC w tabeli serwery index na: ip, typ, flags, fails_to_del, rank, hostname, map, state owner, z czego na IP jest PRIMARY |
|
|
![]() ![]() |
![]() |
Aktualny czas: 25.09.2025 - 03:16 |