"Индекс на базата данни" се отнася до специален вид структура от данни, която ускорява извличането на записи от таблица на базата данни. Индексите на база данни гарантират, че можете ефективно да намирате и осъществявате достъп до данните в таблица на база данни, без да се налага да търсите всеки ред всеки път, когато заявката за база данни се обработва.

Индексът на базата данни може да се оприличи на индекс на книга. Индексите в бази данни ви насочват към записа, който търсите в базата данни, точно както страницата с индекс на книга ви насочва към желаната тема или глава.

Въпреки това, докато индексите на базата данни са от съществено значение за бързото и ефективно търсене и достъп до данни, те заемат допълнително място за запис и памет.

Какво е индекс?

Индексите на база данни са специални справочни таблици, състоящи се от две колони. Първата колона е ключът за търсене, а втората е указателят за данни. Ключовете са стойностите, които искате да търсите и извлечете от таблицата на вашата база данни, а указателят или препратката съхранява адреса на блока на диска в базата данни за този конкретен ключ за търсене. Ключовите полета са сортирани така, че да ускори операцията за извличане на данни за всички ваши заявки.

instagram viewer

Защо да използвам индексирането на база данни?

Тук ще ви покажа индексите на базата данни по опростен начин. Да приемем, че имате таблица в базата данни на осемте служители, работещи във фирма, и искате да потърсите информацията за последното влизане в таблицата. Сега, за да намерите предишния запис, трябва да претърсите всеки ред в базата данни.

Да предположим обаче, че сте сортирали таблицата по азбучен ред въз основа на първото име на служителите. И така, тук ключовете за индексиране се основават на „колоната с име“. В този случай, ако търсите последния запис, „Зак, ”Можете да прескочите до средата на таблицата и да решите дали нашият запис да идва преди или след колоната.

Както знаете, той ще дойде след средния ред и можете отново да разделите редовете след средния ред наполовина и да направите подобно сравнение. По този начин не е нужно да обхождате всеки ред, за да намерите последния запис.

Ако компанията имаше 1 000 000 служители и последният запис беше „Zack“, ще трябва да търсите 50 000 реда, за да намерите името му. Докато с азбучно индексиране можете да го направите в няколко стъпки. Сега можете да си представите колко по-бързо търсене и достъп до данни могат да станат с индексирането на база данни.

Свързани: 13 Най-важните SQL команди, които всеки програмист трябва да знае

Различни методи за организация на файлове за индекси на бази данни

Индексирането зависи в голяма степен от използвания механизъм за организация на файлове. Обикновено има два типа методи за файлова организация, използвани при индексирането на база данни за съхраняване на данни. Те са обсъдени по-долу:

1. Подреден индексен файл: Това е традиционният метод за съхраняване на индексни данни. При този метод ключовите стойности се сортират в определен ред. Данните в подреден индексен файл могат да се съхраняват по два начина.

  • Оскъден индекс: При този тип индексиране се създава запис на индекс за всеки запис.
  • Индекс на плътността: При плътно индексиране се създава запис на индекс за някои записи. За да намерите запис в този метод, първо трябва да намерите най-значимата стойност на ключа за търсене от записи в индекса, които са по-малки или равни на търсената стойност на ключа за търсене.

2. Организация на хеш файлове: В този метод за организация на файлове хеш функция определя местоположението или дисковия блок, където се съхранява запис.

Видове индексиране на база данни

Обикновено има три метода за индексиране на база данни. Те са:

  • Клъстерно индексиране
  • Неклъстерно индексиране
  • Индексиране на много нива

1. Клъстерно индексиране

При клъстерно индексиране един единствен файл може да съхранява повече от два записа с данни. Системата поддържа действителните данни в клъстерно индексиране, а не указателите. Търсенето е рентабилно с клъстерно индексиране, тъй като съхранява всички свързани данни на едно и също място.

Клъстериращият индекс използва подредени файлове с данни, за да се дефинира. Също така, присъединяването към множество таблици на база данни е много често при този тип индексиране.

Също така е възможно да се създаде индекс въз основа на не-първични колони, които не са уникални за всеки ключ. В такива случаи той комбинира множество колони, за да формира уникалните ключови стойности за клъстерирани индекси.

И така, накратко, клъстериращите индекси са мястото, където се групират подобни типове данни и се създават индекси за тях.

Пример: Да предположим, че има компания, която има над 1000 служители в 10 различни отдела. В този случай компанията трябва да създаде клъстерно индексиране в СУБД, за да индексира служителите, които работят в същия отдел.

Всеки клъстер със служители, работещи в един и същ отдел, ще бъде дефиниран като единичен клъстер, а указателите за данни в индекси ще се отнасят към клъстера като цяло.

Свързани: Какво представляват чуждите ключове в SQL бази данни?

2. Неклъстерно индексиране

Неклъстерното индексиране се отнася до тип индексиране, при който редът на редовете на индекса не е същият като начина, по който първоначалните данни се съхраняват физически. Вместо това неклъстерен индекс сочи към хранилището на данни в базата данни.

Пример: Неклъстерното индексиране е подобно на книга, която има подредена страница със съдържание. Тук указателят за данни или препратката е подредената страница със съдържание, която е подредена по азбучен ред, а действителните данни са информацията на страниците на книгата. Страницата със съдържанието не съхранява информацията на страниците на книгата в техния ред.

3. Индексиране на много нива

Многостепенното индексиране се използва, когато броят на индексите е много голям и не може да съхрани първичния индекс в основната памет. Както може би знаете, индексите на базата данни включват ключове за търсене и указатели на данни. Когато размерът на базата данни се увеличи, броят на индексите също нараства.

За да се осигури операция за бързо търсене, в паметта са необходими записи на индекси. Ако се използва индекс на едно ниво, когато номерът на индекса е висок, е малко вероятно този индекс да се съхранява в паметта поради неговия размер и многократен достъп.

Тук влиза в сила многостепенното индексиране. Тази техника разбива индекса на едно ниво на множество по-малки блокове. След разрушаване блокът от външно ниво става толкова мъничък, че лесно може да се съхранява в основната памет.

Свързани: Как да се свържете с база данни MySQL с Java

Какво представлява фрагментацията на SQL индекса?

Когато който и да е ред на индексните страници не съвпада с физическия ред във файла с данни, причинява фрагментация на SQL индекса. Първоначално всички SQL индекси не съдържат фрагментация, но тъй като използвате базата данни (Вмъкване / Изтриване / Промяна на данни) многократно, това може да причини фрагментация.

Освен фрагментацията на базата данни, вашата база данни може да се сблъска и с други жизненоважни проблеми като повреда на базата данни. Това може да доведе до загуба на данни и увреждане на уебсайт. Ако правите бизнес с вашия уебсайт, това може да бъде фатален удар за вас.

електронна поща
Данните на SQL Server са повредени? Опитайте се да го възстановите с инструментариума за възстановяване на SQL

Кутията с инструменти за възстановяване за SQL Server помага да се поправят повредените MDF файлове на MS SQL Server за всички версии.

Прочетете Напред

Свързани теми
  • Програмиране
  • SQL
  • Анализ на данни
  • база данни
За автора
Захид А. Пауъл (Публикувани 12 статии)

Задхид Пауъл е компютърен инженер, който се отказа от кодирането, за да започне да пише! Заедно той е дигитален маркетинг, ентусиаст на технологиите, експерт на SaaS, читател и запален последовател на софтуерните тенденции. Често може да го намерите да люлее клубове в центъра с китарата си или да инспектира гмуркане на океанското дъно.

Още от Zadhid A. Пауъл

Абонирайте се за нашия бюлетин

Присъединете се към нашия бюлетин за технически съвети, рецензии, безплатни електронни книги и ексклузивни оферти!

Още една стъпка…!

Моля, потвърдете имейл адреса си в имейла, който току-що ви изпратихме.

.