Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dodawanie indeksów
a79rtur
post
Post #1





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


mam pare pytan dotyczacych dodawania indeksow ,w celu przyspiszenia dzialania bazy:
-czy indeksy naklada sie tylko na pola dla ktorych jest wyszukiwanie ?np. nazwa miasta

-czy jest sens nakladac ja na pola liczbowe ?np jesli jedno z pol jest wykorzystywane przy pobieraniu danych z bazy (a nie jest kluczem) lub przy laczeniu tabel

-czy w phpmyadminie wystarczy dodac indeks (za pomoca tej ikonki z blyskawicą) czy trzeba cos jeszcze zrobic ? na dole pod lista indeksow jest formularz:
Utworzenie indeksu dla X kolumn , czy tam tez cos trzeba zadzialac?

-prosty select typu : SELECT cos,cos1,cos2 FROM costabela WHERE cosklucz=123
wykonuje mi sie w phpmyadminie od 5 do nawet 90 sekund, cosklucz jest kluczem a costabela ma 2500 rekordow, gosc od hostingu twierdzi ze strona wolno chodzi bo pewnie baza niezoptymalizowana, no ale czy takie proste zapytanie moze sie tyle wykonywac ?

- moze jakies inne sposoby na przyspieszenie bazy ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 5)
mhs
post
Post #2





Grupa: Zarejestrowani
Postów: 764
Pomógł: 3
Dołączył: 30.04.2003

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


Cytat
-czy indeksy naklada sie tylko na pola dla ktorych jest wyszukiwanie ?np. nazwa miasta

nie tylko, ale na tych polach przewaznie zakłada się gdyż przyspiesza to wyszukiwanie danych

Cytat
-czy jest sens nakladac ja na pola liczbowe ?np jesli jedno z pol jest wykorzystywane przy pobieraniu danych z bazy (a nie jest kluczem) lub przy laczeniu tabel

jezeli jest często wyszukiwane to tak


Cytat
-czy w phpmyadminie wystarczy dodac indeks (za pomoca tej ikonki z blyskawicą) czy trzeba cos jeszcze zrobic ? na dole pod lista indeksow jest formularz:


tak (rownież można to zrobić za pomocą ALTER TABLE ... ADD INDEX ( ...) ), chyba, że chcesz by to było pole unikalne więc musisz później jeszcze zmienić za pomocą poniższego formularza


Cytat
prosty select typu : SELECT cos,cos1,cos2 FROM costabela WHERE cosklucz=123


trudno jest powiedzieć - u mnie prosty select na kilkuset tysiącach (jak nie kilku milionach - nie pamiętam już) rekordów wykonywał się szybciej


Cytat
- moze jakies inne sposoby na przyspieszenie bazy ?

może potrzeba się pobawić EXPLAIN i zobaczyć co się dokładnie dzieje
Go to the top of the page
+Quote Post
orson
post
Post #3





Grupa: Zarejestrowani
Postów: 548
Pomógł: 2
Dołączył: 19.07.2003

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


witam ...

generalnie "szersze" (zawierające więcej niż 1 kolumnę) indeksy są wydajniejsze i przyspieszają wyszukiwanie ... jeżeli jest jakiś zestaw kolumn które są intensywnie używane przy szukaniu to dobrze dodać index ale szerszy na wszystkich kolumnach ... wtedy tym formularzem na dole ... dodajesz index i na 2 stronie wybierasz których kolumn ma on dotyczyć ...

pozdrawiam
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Indeksu sluza do wyszukiwania. Indeks powoduje ze baza danych ma posortowane wartosci z indeksu, wtedy warunek na dane pole odbywa sie przez przeszukiwanie btree co przyspiesza zwracanie rekordow. Z tego co wyczytalem to zaleca sie gdzie dane powtarzaja sie do 20%.
2 wazna rzecza jest to ze index uzywa sie przy zlaczeniu tabel i tam gdzie w zapytaniach uzywasz warunkow.
Go to the top of the page
+Quote Post
a79rtur
post
Post #5





Grupa: Zarejestrowani
Postów: 331
Pomógł: 1
Dołączył: 23.05.2004
Skąd: Tarnów/Londyn

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


mam jeszcze pytania dotyczace dodawania indeksu na kilku kolumnach
o co chodzi w tym : ("PRIMARY" musi być nazwą jedynie klucza podstawowego!) (przy nazwie indeksu )
co oznaczają rodzaje indeksów: index,unique,fulltext
jaki rozmiar dawac ,od czego to zalezy? czy to ilosc wierszy ktore bedą zindeksowane ?
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


klucz podstawowy - po tym polu identyfikujesz rekordy dodatkowo przyspiesza dzialanie, podobnie z pozostalymi, celem jest przyspieszenie lub w przypadku unique - unikalne wartosci w bazie.
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 16.09.2025 - 18:22