![]() |
![]() |
![]() ![]()
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 ? -------------------- php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::.. www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu |
|
|
![]() |
![]()
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 |
|
|
![]()
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 -------------------- Computer games don't affect kids; I mean if <span style="font-weight: bold;">Pac Man</span> affected us as kids,we would all be running around in darkened rooms, munching magic pills and listening to repetitive electronic music.
|
|
|
![]()
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. -------------------- |
|
|
![]()
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 ? -------------------- php 5.1.2 & Apache 2.0.50 & MySQL 4.1.7 @ WinXP Pro
..:: GG 6449856 ::.. www.londyn.me.uk - ogłoszenia mieszkaniowe dla Londynu |
|
|
![]()
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.
-------------------- |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 11:31 |