Indeks w bazie danych co to jest i jak działa #62

  Рет қаралды 26,040

nieinformatyk

nieinformatyk

4 жыл бұрын

Indeks jest obiektem w bazie danych, który pozwala przyśpieszać wykonywanie zapytań SQL. W tym nagraniu dowiesz się czym jest indeks, do czego służy, jakie są rodzaje indeksów oraz dlaczego indeks nie zawsze jest dobrym rozwiązaniem, czyli wady korzystania z indeksów.
Obiekty w bazie danych: docs.oracle.com/cd/B19306_01/...
Książka PL/SQL: helion.pl/ksiazki/oracle-pl-s...
Zapisy na kurs: www.nieinformatyk.pl/
Blog: www.nieinformatyk.pl/blog
Facebook: / nieinformatyk
Instagram: / nieinformatyk
Twitter: / nieinformatyk
Zasubskrybuj mój kanał: kzfaq.info...
#indeks #optymalizacja #rodzajeindeksów
Witaj na moim kanale :)
Jestem programistą baz danych Oracle oraz developerem hurtownii danych (ETL). W tym miejscu dzielę się z oglądającymi wiedzą dotyczącą relacyjnych baz danych, praktycznych technik pisania SQL oraz optymalizacji kodu PL/SQL. Jeśli chcesz zdobyć praktyczną i rzetelną więdzę o bazach danych to trafiłeś na właściwe miejsce.
Więcej informacji o baza danych znajdziesz zupełnie ZA DARMO na www.nieinformatyk.pl

Пікірлер: 103
@carlm8148
@carlm8148 3 жыл бұрын
Ale kozak i to za darmo taka wiedza. Ma talent do nauczania.
@nieinformatyk
@nieinformatyk 3 жыл бұрын
dziękuję za feedback :)
@robderrt
@robderrt 3 ай бұрын
Dobrze wytłumaczone.
@nieinformatyk
@nieinformatyk 2 ай бұрын
Dzięki ;)
@aleksandrazajdel2070
@aleksandrazajdel2070 3 жыл бұрын
Mówiąc szczerze to z Twojego 16 minutowego filmiku wyniosłam zdecydowanie więcej niż z 1.5 h wykładu na studiach. Dzięki wielkie za dzielenie się wiedzą i to w tak umiejętny sposób! :)
@nieinformatyk
@nieinformatyk 3 жыл бұрын
Super :) Cieszę się, że pomogłem :)
@jutublizard
@jutublizard Жыл бұрын
Drberg się znalazł
@selfcodegenerator8712
@selfcodegenerator8712 2 жыл бұрын
Dzieki, za fajne wytłumaczenie tematu indexów, jeden z lepszych kanałów o bazach danych :)
@nieinformatyk
@nieinformatyk 2 жыл бұрын
Cieszę się, ze pomogłem :)
@mrgvp
@mrgvp 3 жыл бұрын
Jak można ten filmik minusować... Dzięki za Twoją pracę!
@pietrzakadrian
@pietrzakadrian 3 жыл бұрын
Dzięki za uzupełnienie materiału!
@nieinformatyk
@nieinformatyk 3 жыл бұрын
Polecam się na przyszłość :)
@mateuszszczuka2311
@mateuszszczuka2311 3 жыл бұрын
Robisz bardzo fajną robotę, oby tak dalej 🙂
@nieinformatyk
@nieinformatyk 3 жыл бұрын
dziękuję za komentarz :)
@zaur66
@zaur66 2 жыл бұрын
Genialne, bardzo dziekuje za film! Zrozumiale dla osoby ktora zaczyna z bazami danych.
@nieinformatyk
@nieinformatyk 2 жыл бұрын
Dziękuje i cieszę się, że pomogłem :)
@marcin2475
@marcin2475 2 жыл бұрын
Świetny materiał! Dzięki!
@nieinformatyk
@nieinformatyk 2 жыл бұрын
Polecam się na przyszłość :)
@Tomekrusz
@Tomekrusz 3 жыл бұрын
Super materiał wszystko czarno na białym wyjaśnione, bardzo dziękuję za pomoc. :)
@nieinformatyk
@nieinformatyk 3 жыл бұрын
Bardzo się cieszę, że materiał się przydał :)
@paulinamanda1803
@paulinamanda1803 4 жыл бұрын
Wszystko jasne, dzięki!
@nieinformatyk
@nieinformatyk 4 жыл бұрын
super, dziękuję za komentarz :)
@mrkilwag
@mrkilwag 3 жыл бұрын
kurde gościu, dzięki wielkie, wszystko jasne piknie wytłumaczone!
@nieinformatyk
@nieinformatyk 3 жыл бұрын
proszę bardzo - polecam się na przyszłość :)
@user-hg5kd6qk5j
@user-hg5kd6qk5j 4 ай бұрын
Bardzo pomocny filmik, dziękuję :)
@nieinformatyk
@nieinformatyk 4 ай бұрын
Cieszę się, że przypadł Ci do gustu:)
@tomaszmroczka5839
@tomaszmroczka5839 Жыл бұрын
jestes gitem, szacun i dziekuje
@nieinformatyk
@nieinformatyk Жыл бұрын
dzięki :)
@MrRodiego
@MrRodiego 2 жыл бұрын
Świetny odcinek!
@nieinformatyk
@nieinformatyk 2 жыл бұрын
dzięki :)
@pawewiatrak5684
@pawewiatrak5684 Жыл бұрын
Bardzo mi się podoba, że dajesz hasła jakich należy szukać żeby poszerzyć swoją wiedzę na dane zagadnienie. Dzięki czemu mogłem przenieść całą koncepcję na bazę danych smssql :) Dzięki!!
@nieinformatyk
@nieinformatyk Жыл бұрын
Jeśli szukałeś ścieżek dostępu to te nagranie może Ci się spodobać: kzfaq.info/get/bejne/huBpqamV07nXe58.html
@fatallny
@fatallny 4 жыл бұрын
Cześć Darku, kolejny super odcinek, oby tak dalej :-) Fajnie byłoby zobaczyć tematy które poruszasz w praktyce. Nowe osoby na pewno lepiej zrozumiałyby jak to działa, na przykład pokazać dwa takie same zapytania, jedno z indexami, a drugie bez :-)
@nieinformatyk
@nieinformatyk 4 жыл бұрын
dziękuję za sugestię, postaram się dopracować plan nagrań :)
@kamilnowak5
@kamilnowak5 3 жыл бұрын
Opisane elagancko :)
@nieinformatyk
@nieinformatyk 3 жыл бұрын
dzięki :)
@specialmusic3498
@specialmusic3498 3 жыл бұрын
Dziękujemy.
@nieinformatyk
@nieinformatyk 3 жыл бұрын
proszę bardzo :)
@ZenonMcRae
@ZenonMcRae 2 жыл бұрын
Dla zasięgu!
@nieinformatyk
@nieinformatyk 2 жыл бұрын
dzięki :)
@JanKowalski-ld4ec
@JanKowalski-ld4ec 8 ай бұрын
Bardzo klarownie przedstawione tematy. Przyjemnie się ogląda tak profesjonalny poziom wiedzy i tak pozbawione maniery nauczanie. Prosty flipchart zamiast wodotrysków wystarczy jak widać. Serdeczne dzięki. Powodzenia i Tobie!
@nieinformatyk
@nieinformatyk 8 ай бұрын
dzięki :)
@JanKowalski-ld4ec
@JanKowalski-ld4ec 8 ай бұрын
@@nieinformatyk Jeszcze tylko ten greenscreen zostawia artefakty ;)
@adriangoleba9972
@adriangoleba9972 3 жыл бұрын
Cześć Darku, materiał w 100% zrozumiany za co dziękuję! Myślę, że mógłbyś nagrać dodatkowy odcinek pokazujący jak w praktyce różnią się zapytania z indeksami i bez. Pozdrawiam serdecznie!
@nieinformatyk
@nieinformatyk 3 жыл бұрын
Właśnie nagrałem taki odcinek. Ukaże się w kolejnych tygodniach :)
@mateuszkaleta1495
@mateuszkaleta1495 3 жыл бұрын
super materiał ;p
@nieinformatyk
@nieinformatyk 3 жыл бұрын
dzięki :)
@nataliej.6110
@nataliej.6110 8 ай бұрын
Nasz prowadzący chyba próbował inspirować się Twoim filmem na laboratorium, ale niestety zrobił to baaardzo nieumiejętnie i strasznie to skomplikował tak, że było to zupełnie niezrozumiałe. Cieszę się, że trafiłam na ten kanał. Dzięki wielkie!
@nieinformatyk
@nieinformatyk 8 ай бұрын
Cieszę się, że mogłem pomóc :)
@NecesitoLaMusica
@NecesitoLaMusica 3 жыл бұрын
Wiedziałam o zaletach, ale nigdy nie pomyślałam o tym, że może spowolnić modyfikacje zawartości tabeli. Dzięki!
@nieinformatyk
@nieinformatyk 3 жыл бұрын
Polecam się na przyszłość :)
@piotr8909
@piotr8909 4 жыл бұрын
Suuper materiał :) I kiedy można liczyć na kolejny odcinek kursu PL/SQL?
@nieinformatyk
@nieinformatyk 4 жыл бұрын
kolejny odcinek PL/SQL to będzie kontynuacja pisania triggera, myślę, że około miesiąc :) Polecam zapisać się na newsletter, bo jeszcze w tym roku pojawi się szansa uczestnictwa w kompleksowym szkoleniu PL/SQL od A od Z: nieinformatyk.pl/
@tyszczuczuczuczu8971
@tyszczuczuczuczu8971 3 жыл бұрын
Dlaczego dopiero teraz odkryłam ten kanał.... :c
@megabroku4592
@megabroku4592 Жыл бұрын
fajny talent artystyczny
@nieinformatyk
@nieinformatyk Жыл бұрын
haha, dzięki :)
@marnow88
@marnow88 3 жыл бұрын
super odcinek i czekam na kolejny: kiedy i jakiego rodzaju indeksu użyć?
@nieinformatyk
@nieinformatyk 3 жыл бұрын
Zależy o jaki rodzaj pytasz, są b-tree(drzewiaste) i bitmapowe, unikalne i nieunikalne, rosnące i malejące, itd. Podaj konkretny case to powiem Ci co bym wybrał :)
@kubamosakowski7350
@kubamosakowski7350 Жыл бұрын
👍👍
@sebon11
@sebon11 Жыл бұрын
Siemano, odcinek jest świetny jak zawsze na Twoim kanale! Zabrakło mi jednak praktyki oraz dokładnego omówienia - kiedy dokładnie tworzyć indeksy? To zależy od tego jakie mamy dane w tabeli, czy co? Kiedy zrobić indeks złożony(?) a kiedy na jednej kolumnie? Chociaż wspomniałeś że to będzie w następnych odcinkach, więc spoko, a ten wstęp który zrobiłeś jest jak najbardziej świetny i potrzebny, po prostu mówię że czekamy na więcej :D (chyba że już jest, zaraz spojrzę xddd)
@nieinformatyk
@nieinformatyk Жыл бұрын
Obejrzyj ten odcinek i 2 kolejne z playlisty: kzfaq.info/get/bejne/i5Z3q9lqrLuYZqM.html Trudno zebrać to wszystko w jeden odcinek. Nie chcę by video trwało ponad 20 minut więc dzielę to na pojedyncze tematy. A kwestia, gdzie i jaki indeks tworzyć to w skrócie: klucze główne i klucze obce. A reszta wymaga trochę więcej do opowiedzenia. Nagram kiedyś kurs optymalizacji SQL to poświęcimy temu zagadnieniu cały kilkugodzinny moduł :)
@sebon11
@sebon11 Жыл бұрын
@@nieinformatyk super! Czekam właśnie na zagadnienia dotyczące optymalizacji zapytań SQL i wgl projektowania bazy danych bo to ciekawy i ważny temat :) dzięki! Pozdro!
@nieinformatyk
@nieinformatyk Жыл бұрын
@@sebon11 o projektowaniu znajdziesz co nie co tutaj: kzfaq.info/get/bejne/beCHhsKZyOC3ZZc.html no i oczywiście w kursie www.podstawybazdanych.pl
@XivaGamer
@XivaGamer 3 жыл бұрын
a co jezeli damy limit 1? wtedy full scan chyba sie przerwie prawda/?
@MeggaFelipe
@MeggaFelipe 3 жыл бұрын
#zasieg
@nieinformatyk
@nieinformatyk 3 жыл бұрын
dzięki :)
@filemonek123
@filemonek123 3 жыл бұрын
W mowie koncowej moglbys zawrzec odnosniki do swoich nagran w ktorych omawiasz wspominane zagadanienia. CZyli jak mowisz, ze cos tam bedzie pozniej bo jest zaawansowane to fajnie jakby w rogu ekranu pojawil sie link do twojego nagrania z tym, bo tak to trzeba szukac a uzytkownicy kaprysni sa
@nieinformatyk
@nieinformatyk 3 жыл бұрын
Tu problem jest taki, że trudno spamiętać, o czym mówiłem w każdym z poprzednich nagrań i do czego odsyłałem. Ale dzięki za feedback, pomyśle jak to rozwiązać.
@RegalWK
@RegalWK Жыл бұрын
a jak tworzymy tabele i szukamy po id, które jest kluczem głównym to chyba nie robi się full table scan, bo to pod spodem jest tworzony uniq indeks do tego?
@nieinformatyk
@nieinformatyk Жыл бұрын
To prawda. Jak tworzysz PK(klucz główny) to automatycznie jest tworzony indeks(zazwyczaj unikalny) i wtedy zapytanie WHERE id=1 oczywiście wykorzysta indeks. Jeśli jednak w SELEC-ie odniesiesz się do kolumny, które w indeksie nie ma, np. nazwa_produktu to po przeczytaniu indeksu baza uda się do tabeli(table access by ROWID).
@pawelkubrak547
@pawelkubrak547 3 жыл бұрын
good film. record more.
@nieinformatyk
@nieinformatyk 3 жыл бұрын
thank you :) come back every Saturday :)
@maciekssj
@maciekssj 4 жыл бұрын
Chętnie zobaczyłbym porównanie na żywym przykładzie jak dużo czasu można zyskać tworząc indeksy. Na przykład bez indeksów wykonuje się 3 sekundy, z indeksami 1 Również statystyka w postaci konkretnych danych o ile operacje DML zostają spowolnione
@nieinformatyk
@nieinformatyk 4 жыл бұрын
dziękuję za sugestię, postaram się coś wymyślić :)
@michal5869
@michal5869 3 жыл бұрын
@@nieinformatyk jak wyrzucisz coś z indeksu to DB musi zrobić ponowne sortowanie? a jak tak to czy może przenieść tylko z końca jakiś element indeksu dla przyspieszenia?
@nieinformatyk
@nieinformatyk 3 жыл бұрын
@@michal5869 tak, proces aktualizacji indeksu to tzw. rebuild - dlatego DML na tabeli jest wolniejszy, bo indeks trzeba aktualizować. Nie rozumiem drugiego pytania :)
@michal5869
@michal5869 3 жыл бұрын
@@nieinformatyk chodzi mi o sortowanie, czy db może kasowany wiersz indeksu zastąpić innym istniejącym aby nie uniknąć sortowania.
@nieinformatyk
@nieinformatyk 3 жыл бұрын
@@michal5869 Indeks w standardowej postaci B-Tree zawiera 2 kolumny(oczywiście nie dosłownie). Jest to klucz indeksu, czyli indeksowana wartość oraz ROWID - identyfikator rekordu z daną wartością klucza. Jeśli modyfikujesz klucz indeksu, np. zmieniasz wartość z 5 na 10, X na Y to indeks musi zostać posortowany. Jeśli z kolei zmieniasz inną kolumnę w rekordzie tabeli(nieindeksowaną) to indeksu nie trzeba aktualizować, bo wartość klucza i ROWID się nie zmieniła. Tak samo, gdy usuwasz rekord z tabeli to indeks musi zostać posortowany, bo przecież trzeba ze struktury indeksu usunąć jeden z kluczy. Jak chciałbyś zastąpić jeden wiersz drugim?
@MeggaFelipe
@MeggaFelipe Жыл бұрын
#zasieg2
@MeggaFelipe
@MeggaFelipe Жыл бұрын
Super, zresztą jak zawsze.
@nieinformatyk
@nieinformatyk Жыл бұрын
@@MeggaFelipe dzieki:)
@katarzynaniebrzydowska7317
@katarzynaniebrzydowska7317 2 жыл бұрын
Dzień dobry, co się dzieje z indeksami na tabeli przy próbie usunięcia tabeli SQL?
@nieinformatyk
@nieinformatyk 2 жыл бұрын
indeksy podobnie jak constrainty czy triggery są usuwane razem z tabelą
@katarzynaniebrzydowska7317
@katarzynaniebrzydowska7317 2 жыл бұрын
@@nieinformatyk Bardzo Panu dziekuje za odp i czekam na kolejne odcinki !
@nieinformatyk
@nieinformatyk 2 жыл бұрын
@@katarzynaniebrzydowska7317 chwilowo zwolniłem, bo przygotowuję kurs programowania PL/SQL, ale wkrótce wracam z nowymi :)
@esponplaygames
@esponplaygames 3 жыл бұрын
może coś o rodzajach indeksów?
@nieinformatyk
@nieinformatyk 3 жыл бұрын
dodałem do listy, która co raz szybciej się wydłuża :D
@nieinformatyk
@nieinformatyk Жыл бұрын
Właśnie nagrałem materiał o który prosiłeś. Daj znać czy Ci się podoba🙂 kzfaq.info/get/bejne/g6ucZthztbrOep8.html
@brarord8401
@brarord8401 Жыл бұрын
12:00 - czy na pewno w tym przypadku operacja DELETE będzie wolniejsza dla tabeli z indeksem unikalnym na polu ID? Przecież dzięki indeksowi polecenie DELETE WHERE ID w momencie znalezienia określonego ID usunie ten rekord i już nie będzie szukać kolejnych rekordów bo wie że ID jest unikalne. Usunie też rekord w indeksie. Jeżeli szukane ID znajduje się na pierwszym miejscu w indeksie to baza wykona tylko 2 operacje: kasacja rekordu z tabeli i z indeksu. W przypadku braku posiadania indeksu na kolumnie ID polecenie DELETE WHERE ID usunie 1 rekord jeżeli znajdzie odpowiednie ID i będzie przeszukiwać dalej całą tabelę, bo nie wie czy gdzieś jeszcze takiego ID nie ma. Więc liczba operacji wykonanych na bazie może być tutaj ogromna, bo pomimo tego że wiemy iż jest tylko 1 takie ID do usunięcia to będziemy musieli przeszukać całą tabelę. W przypadku posiadania indeksu unikalnego zaprzestaniemy po pierwszej udanej próbie.
@nieinformatyk
@nieinformatyk Жыл бұрын
Świetna uwaga :) Wolniejsza będzie w tym sensie, że zamiast robić DELET-e na tabeli musisz robić DELETE na tabeli i DELETE na indeksie. Oczywiście, jeśli tabela będzie odpowiednio duża to czas FULL TABLE SCAN może być dużo dłuższy niż 2 DELETE z indeksem unikalnym. Wtedy mamy do czynienia z wyjątkiem potwierdzającym regułę ;) PS. Przyszła mi do głowy jeszcze jedna rzecz, którą należałoby sprawdzić. DELETE usuwa najpierw rekord z tabeli czy z indeksu? Bo jeśli indeks jest pierwszy to na tabeli i tak poleci FULL TABLE SCAN.
@brarord8401
@brarord8401 Жыл бұрын
@@nieinformatyk Propo PS to chyba powinien skasować najpierw z tabeli zgodnie z jakąś podstawową logiką zysków i strat. A czy tak jest to w sumie cholera wie Oo Jeżeli i tak i tak skanuje całą tabelę to trochę niefajne te indeksy w operacjach modyfikacji wartości unikalnych.
@damiankrasniewski4946
@damiankrasniewski4946 4 жыл бұрын
Komentarz dla statystyk
@nieinformatyk
@nieinformatyk 4 жыл бұрын
dzięki :)
@rufusr5880
@rufusr5880 5 ай бұрын
Mi tylko brakuje jakiegos praktycznego przykładu :)
@nieinformatyk
@nieinformatyk 5 ай бұрын
Zerknij na pozostałe odcinki tej playlisty - znajdziesz tam niejeden przykład :) kzfaq.info/get/bejne/rdiXfsyXu7GUp5s.html
@rufusr5880
@rufusr5880 5 ай бұрын
@@nieinformatyk jasne, zerkne po pracy
@Solban_
@Solban_ 3 жыл бұрын
Samy Kamkar lepszy
@Solban_
@Solban_ 3 жыл бұрын
Ale i tak fajnie bo Samy Kamkar to największy koks
@kol19pl
@kol19pl 3 жыл бұрын
niestety nie pomocne przy tym czego szukam
@nieinformatyk
@nieinformatyk 3 жыл бұрын
A czego szukałeś?
Na czym polega normalizacja w bazach danych? #65
12:55
nieinformatyk
Рет қаралды 24 М.
How Many Balloons Does It Take To Fly?
00:18
MrBeast
Рет қаралды 172 МЛН
Cool Items! New Gadgets, Smart Appliances 🌟 By 123 GO! House
00:18
123 GO! HOUSE
Рет қаралды 17 МЛН
Little girl's dream of a giant teddy bear is about to come true #shorts
00:32
Transakcja sql - to co jest i jak działa w bazie danych?
18:47
nieinformatyk
Рет қаралды 10 М.
SQL vs. NoSQL: What's the difference?
6:06
IBM Technology
Рет қаралды 138 М.
SQL Index |¦| Indexes in SQL |¦| Database Index
9:57
Socratica
Рет қаралды 610 М.
Czym są widoki w sql? #64
12:29
nieinformatyk
Рет қаралды 13 М.
Projektowanie Indeksów w SQL Server
1:34:48
Cezary Walenciuk
Рет қаралды 5 М.
Co to jest relacyjna baza danych? Model relacyjny danych od podstaw
16:11
Poziomy izolacji sql - wyjaśnienie dla laika + przykłady
27:36
nieinformatyk
Рет қаралды 3,7 М.
Как распознать поддельный iPhone
0:44
PEREKUPILO
Рет қаралды 2,1 МЛН
КРУТОЙ ТЕЛЕФОН
0:16
KINO KAIF
Рет қаралды 6 МЛН
Копия iPhone с WildBerries
1:00
Wylsacom
Рет қаралды 6 МЛН