Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z baza czy zapytaniem?
matisq
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 2.06.2008

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
nieraczek
post
Post #2





Grupa: Zarejestrowani
Postów: 405
Pomógł: 6
Dołączył: 12.01.2007

Ostrzeżenie: (0%)
-----


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.

Ten post edytował nieraczek 21.05.2009, 07:06:14
Go to the top of the page
+Quote Post
maly_swd
post
Post #3





Grupa: Zarejestrowani
Postów: 744
Pomógł: 118
Dołączył: 14.02.2009
Skąd: poziome

Ostrzeżenie: (0%)
-----


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:)


--------------------
śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu..
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 09:22