![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 25.06.2003 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
Mam 2 tabele: 'informacje' i 'woj', w ktorych przechowuję informacje dotyczące danych województw.
W 'informacje' uzbierało się już ponad 50000 rekordów i niestety całość trochę zaczyna mulić. struktura 'informacje': id int(10) UNSIGNED tytul text tresc text woj tinyint(3) miasto varchar(255) data_wprowadzenia date termin_waznosci datetime indeksy: id (UNIQUE), data_wprowadzenia, woj, termin_waznosci (INDEX) struktura 'woj': id tinyint(3) nazwa varchar(255) indeks: id (UNIQUE) Dane pobieram zapytaniem:
czasem wykonanie zapytania trwa nawet 30-40 sekund (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Jak takie coś przyspieszyć żeby mogło funkcjonować w warunkach strony www - wiadomo, musi się jakoś rozsądnie wczytywać. P.S. Przy wykonywaniu bardziej skomplikowanych zapytań (gdzie dochodzą jeszcze np. kategorie informacji, daty, terminy, dających mniej rekordów w odpowiedzi, wczytuje się dużo szybciej) P.P.S.: ... a wogóle jak dużo rekordów pomieśli tabela MySQLa, bo może jestem przy wartości granicznej czy co...:/ ? pozdro Alek |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 47 Pomógł: 0 Dołączył: 25.06.2003 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
@SongoQ
1. i 2. adlaczego unique jest wolniejszy od primary? pytam w celach dydaktycznych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) 3. chodzi o to zeby zrobić dodatkową tabelę (powiedzmy info_woj) zawierającą pary informacja - województwo? czy to nie będzie wolniejsze (do joina dojdzie tabela relacji); poza tym to jest relacja *->1, więc nie wiem czy potrzebna dodatkowa tabela @orson Cytat wywal SQL_CALC_FOUND_ROWS SQL_CALC_FOUND_ROWS potrzebne mi jest do wydobycia info dla użytkownika i do stronicowania wyników - jaka jest alternatywa? (count(id) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) ) Cytat wywal DISTINCT tu faktycznie nie jest potrzebne, jest to pozostałość z większej kwerendy, gdzie używałem jeszcze kategorii informacji w relacji *->* (tabela informacje_kat) oto ona:
stąd nie mogę wywalić, bo będą się powtarzać wiersze wynikowe; chyba że można coś z tym zrobić... @TomASS Cytat Zapytanie czy wyświetlenie wyników trwa 30-40 sekund. Napisałeś że wykonanie, jednak wolę się upewnić zapytanie, czas podany przez phpMyAdmin Cytat Możesz pomyśleć o cachowaniu danych. Serwer MySQL ustawiony ma cache wewnętrzny, więc następne identyczne zapytania są wykonywane szybko; poza tym tablica się dość szybko zmienia (co kilka minut) ------------- poniżej wynik EXPLAIN: id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ALL woj NULL NULL NULL 55224 Using filesort 1 SIMPLE t2 eq_ref id id 1 mojabaza.t1.woj 1 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 23:26 |