Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z baza czy zapytaniem?
Forum PHP.pl > Forum > Bazy danych > MySQL
matisq
Cześć;

Mam bazę danych i mam zapytanie. Jak mogę zoptymalizować te tabele? Gdzie pozakładać indeksy?
Szczerze mówiąc wogóle nie rozumiem tego co wyswietla mi php admin a co dotyczy INDEXY. zapytanie trwa 5 minut i nie wiem czemu tak długo.

  1. mysql> EXPLAIN SELECT id,timet,service_long_output FROM service_data WHERE host_id = "24" AND service_id = "1" AND timet>"1241528040" AND timet<"1241528400" ORDER BY id DESC LIMIT 1 ;


+----+-------------+--------------+------+------------------------------+---------+---------+-------------+-------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------------+------+------------------------------+---------+---------+-------------+-------+-------------+
| 1 | SIMPLE | service_data | ref | host_id_2,service_id,host_id | host_id | 8 | const,const | 36286 | Using where |
+----+-------------+--------------+------+------------------------------+---------+---------+-------------+-------+-------------+




Dzięki z góry za pomoc.
nieraczek
Indexy przyspieszają wyszukiwanie i odczytywanie danych, natomiast wydłużają wstawianie, modyfikowanie i usuwanie danych. Powinny być zakładane na kolumnach primary key (nie musisz zakładać, bo są zakładane automatycznie), na kolumnach foreign key oraz kolumnach, które są często wyszukiwane, ale rzadko modyfikowane.

Przy dużej liczbie rekordów i łączeniu kilku tabel zapytanie może trwać kilka godzin.
maly_swd
1. dostosuj typy danych w kolumnach, np jesli w ktorejs kolumnie uzywasz liczb z przedzialu 0-255 to tinyint, 0-65tys.. to smalint itp. do 16mln mediumint....
2. dodaj index laczony dwie lub wiecej kolumn np host_id, service_id.
3. w zapytaniach podawaj liczby bez "" czyli host_id = "24" na host_id = 24

ogolnie to pobaw sie kombinacja indexow z pkt 2

* oczywiscie to tylko sugestia nie poparta doswiadczeniem:)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.