![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 1 Dołączył: 4.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
witam, jestem w kursie mysql na rodziale poswieconym indeksom. na poczatku rozumialem o co chodzi, sluza do grupowania rekordow pod jakims kryterium zeby ulatwic dostep. ale im dalej sie zaglebialem to mniej rozumialem, przeczytalem kilka razy szukalem jakis innych kursow ale nie łapie tego do konca. czy ktos komu sie chce moglby mi objasnic ich działanie, uzycie i uzytecznosc? zawsze łatwiej jak moge zadac jakies pytania niz tylko tresc z kursu. pozdrawiam
|
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 477 Pomógł: 6301 Dołączył: 27.12.2004 ![]() |
Co do samych indeksów to tu nie ma żadnej filozofii zbytnio:
indeksy służą do szybszego wyszukiwania danych. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 1 Dołączył: 4.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
to wiem, ale jakie jest ich praktyczne wykorzystanie? czy np dzieki temu moge wykorzystac dane z jednej tabeli w drugiej?
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 477 Pomógł: 6301 Dołączył: 27.12.2004 ![]() |
Praktyczne wykorzystanie?
Weź stwórz tabelę a w niej MILION rekordów. Następne wyszukuj jakiś danych w tej tabeli. Zajmie ci to dużo czasu. A teraz zalóż indeks na pole po którym szukasz i ponów wyszukiwanie. Będzie to zrobione migiem. Cytat czy np dzieki temu moge wykorzystac dane z jednej tabeli w drugiej? Jedno nie ma związku z drugim.Powtarzam: indeksy same w sobie służą do przyspieszenia wyszukiwania informacji. Możesz wiązać dane z różnych tabel ze sobą z indeksami czy bez nich. Ino że z indeksami będzie to szybsze. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 744 Pomógł: 118 Dołączył: 14.02.2009 Skąd: poziome Ostrzeżenie: (0%) ![]() ![]() |
Indexy to taki spis tresci.
Wez np duza ksiazke 1000stron i teraz aby odszukac konkretny rozdzial... bez spisu musialbys przegladac kazda storne i szukac. A dzieki indexowi wiesz ze aby odszukac kokretny rozdzial nalezy go szukac na 732 stronie. I tak wlasnie dziala index, "baza" wie gdzie ma co zapisane. Indexy moga pelnic jeszcze jedna wazna role, moga byc UNIKALNE, czyli nie bedzie mozliwe stworzenie wiecej niz jednego takiego samego "wpisu". -------------------- śmieszne obrazki
Kryzys: Ser jem spleśniały, wino piję stare i samochód mam bez dachu.. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 1 Dołączył: 4.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
hmm ok. w kursie jest taki przykalad zastosowania indeksow:
moglbys mi wytłumaczyc jaka funkcje pełni tutaj ten indeks? do czego sie odwołuje? i jak działa? |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 36 477 Pomógł: 6301 Dołączył: 27.12.2004 ![]() |
....
KEY `il_ksiazek` (`il_ksiazek`) Przyspiesza wyszukiwanie/sortowanie po ilości książek KEY `kategoria_id` (`kategoria_id`) Przyspiesza łączenie tabeli ksiązki z tabelą kategorie No przecież juz ci to mówiłem - przyspiesza. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 200 Pomógł: 1 Dołączył: 4.08.2012 Ostrzeżenie: (10%) ![]() ![]() |
to chyba sie probowalem doszukac jakis glbeszych tresci w Twojej wypowiedzi
![]() ![]() |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 341 Pomógł: 40 Dołączył: 23.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
można ując inaczej: indexy ułatwiają życie (bazie danych)
czasem są wykorzystywane do przyspieszenia wyszukiwania danych, a czasem do zapewnienia spójności danych (index typu primary, unique, forgin key) te drugie, przede wszystkim zapewniają integralność danych. w kolejnym kroku optymalizują (przyśpieszają) w mysql w silniku myisam są jeszcze klucze ułatwia przeszukiwanie zawartości tekstowych (full search text) j. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 6 366 Pomógł: 1115 Dołączył: 30.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Tylko kilka uwag.
Indeksy poprawnie nałożone przyśpieszają bo można wywołać skutek odwrotny. Indeksy działają dla zapytań SELECT, dla innych operacji mogą spowodować zwolnienie (konieczność przebudowania indeksu) Indeksy zabierają miejsce więc dla dużych tabel (wiele milionów rekordów) to będą spore wartości. -------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 1 045 Pomógł: 141 Dołączył: 19.09.2006 Skąd: B-tów Ostrzeżenie: (0%) ![]() ![]() |
Witam,
działanie indeksów można bardzo łatwo zaobserwować przy pomocy EXPLAIN prosty przykład mam tablicę "test" w której jest 424 rekordów chcemy pobrać rekord o id=1 zapytanie bez indeksów Kod EXPLAIN SELECT * FROM `test` WHERE id =1; +----+-------------+-------+------+---------------+------+---------+------+------+-------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+------+---------+------+------+-------------+ | 1 | SIMPLE | test | ALL | NULL | NULL | NULL | NULL | 424 | Using where | +----+-------------+-------+------+---------------+------+---------+------+------+-------------+ jak widać mysql musiał przeszukać wszystkie 424 rekordy(informacja w kolumnie rows) rekordy żeby wyszukać ten o id=1 test drugi robimy dokładnie to samo ale najpierw nakładamy indeks Kod ALTER TABLE `test` ADD INDEX `id` ( `ID` ); EXPLAIN SELECT * FROM `test` WHERE id =1; +----+-------------+-------+------+---------------+------+---------+-------+------+-------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+---------------+------+---------+-------+------+-------+ | 1 | SIMPLE | test | ref | id | id | 8 | const | 1 | | +----+-------------+-------+------+---------------+------+---------+-------+------+-------+ teraz mysql przeszukał tylko jeden rekord i użył do tego klucza o nazwie "id" |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 10.06.2024 - 16:21 |