Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 22.06.2012
Сообщений: 244

Механизм работы индексов

23.04.2013, 16:44. Показов 1818. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Везде написано зачем они нужны, но нигде не написано как все это работает. Не иначе как магия.

Скажите, правильно я понимаю механизм:
проиндексированный столбец - это как бы копия столбца выделенная отдельно, по которому и будет осуществляться приоритетный поиск данных и как только искомая запись найдется в этом столбце, СУБД перейдет ко всему кортежу, таким образом и достигается производительность - остальные данные ведь игнорируются до получения искомых.
Непонятно как осуществляется скачок к нужному множеству записей, например если мы ищем Иванова, как осуществляется пропуск всех ячеек с другими буквами?

В общем, объясните как магия эта работает, везде какие-то примеры с предметными указателями в книге, но ответа на вопрос нет.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.04.2013, 16:44
Ответы с готовыми решениями:

механизм работы
Всем привет у меня возник такой вопрос: Например у нас есть строка "Привет!" в TextBox'e, и через свойство TextLength получаем длину...

Thread_local механизм работы
Как конкретно компилятор обрабатывает thread_local переменные? Что конкретно происходит при обращении к такой переменной. Может быть...

Механизм работы кода
Всем доброго времени. Помогите разобраться с вот этим кодом using System; using System.Windows.Forms; class New { ...

5
2895 / 1930 / 208
Регистрация: 05.06.2011
Сообщений: 5,666
24.04.2013, 09:11
Ищи статьи по B-, B+-деревьям.
Грубо говоря, строится некое более или менее сбалансированное дерево по некоему выражению (выражение в разных СУБД понимается по-разному; это может быть столбец, последовательность столбцов, произвольное выражение), которое, во-первых, позволяет быстро найти записи базы по значению выражения и, во-вторых, упорядочено по возрастанию, что позволяет иногда сэкономить на сортировке.
Есть и другие виды индексов, эти -- исторически первые.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
25.04.2013, 17:12
Тот же вопрос:
Существует два типа индексов: кластерные и некластерные. При наличии кластерного индекса строки таблицы упорядочены по значению ключа этого индекса. Если в таблице нет кластерного индекса, таблица называется кучей. Некластерный индекс, созданный для такой таблицы, содержит только указатели на записи таблицы. Кластерный индекс может быть только одним для каждой таблицы, но каждая таблица может иметь несколько различных некластерных индексов, каждый из которых определяет свой собственный порядок следования записей.
Кластерный, я так понимаю, это тупо как раз-таки В+ дерево с уникальными ключами. А вот некластерные хранят "просто указатели" - что за указатели? Как это все работает? Как в SSMS индексировать столбцы?
0
2895 / 1930 / 208
Регистрация: 05.06.2011
Сообщений: 5,666
26.04.2013, 01:37
Цитата Сообщение от Psilon Посмотреть сообщение
Кластерный, я так понимаю, это тупо как раз-таки В+ дерево с уникальными ключами
Как я понял из твоей цитаты, скорее как раз некластерный. И не обязательно уникальные ключи -- просто одной записи соответствует один ключ. И не обязательно B-деревья
Кластерный -- возможно, как в Фокспро? Хотя как там конкретно, и не скажу.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
26.04.2013, 01:40
iifat, при чем тут FoxPro? в MS SQL все то же самое. Вот еще определение:
Некластерные индексы создаются СУБД по умолчанию. Данные физически расположены в произвольном порядке, но логически упорядочены согласно индексу. Такой тип индексов подходит для таблиц, где часто изменяются значения.

При кластерном индексировании данные физически упорядочены, что серьезно повышает скорость выборок данных (но только в случае последовательного доступа к данным). Для одной таблицы может быть создан только один кластерный индекс.
Добавлено через 54 секунды
И вот еще:
Фактически, для кластерного индекса leaf level этого индекса есть сами страницы таблицы с данными. Рис.3 показывает кластерный индекс, созданный по полю CustomerID таблицы Customers.

Поскольку сами данные таблицы являются частью индекса, то очевидно что для таблицы может быть создан только один кластерный индекс.

В SQL Server кластерный индекс является уникальным индексом по определению. Это означает что все ключи записей должны быть уникальные. Если существуют записи с одинаковыми значениями, SQL Server делает их уникальными, добавляя номера из внутреннего (невидимого снаружи) счетчика. Рис. 4 иллюстрирует этот случай. Почему архитектура SQL Server имеет такую функциональность? Ответ прост – потому что есть только два способа найти необходимую запись: по row ID или по ключу кластерного индекса. Row ID используется когда нет кластерного индекса, и кластерный индекс – в противном случае.
0
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
26.04.2013, 10:37
Полагаю, что подобные темы надо обсуждать не в форуме "Базы данных", а в форуме по конкретной СУБД.
Поскольку подобные вещи специфичные для разных СУБД.

Скажем, по приведенному описанию я бы сказал, что кластерные индексы похожи на IOT (Index Organization Table) в Oracle. А некластерные - это обычные идексы. Хотя понятие "обычные" тоже может различаться.
Например, в Oracle есть индексы в виде B-tree (они наиболее употребимые, поэтому их обычно называют просто индексы), bitmap-индексы и FBI (Function-Based Index).
Есть и более экзотические, но они используются гораздо реже.
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
26.04.2013, 10:37
Помогаю со студенческими работами здесь

Не понимаю механизм работы циклов while
#include <iostream> #include <cstdlib> #include <ctime> using namespace std; int main() { srand(time(0)); bool done; ...

Подскажите механизм работы метода
Есть задача, дан массив int mas = {1, 2, 3, 4, 5, 6, 7, 8, 9, 0}; вот такого вида. Задача такая вывести его в виде телефонного номера...

Организовать механизм работы с проектами
Всем снова привет!:) Есть задачка у меня, но никак не могу собрать мозги в кучу и расписать алгоритм... Задание - если проще говоря, то...

Механизм работы git merge
Мне стало интересно как изнутри работает механизм git merge. То есть допустим если я создал две ветки и сделал два комита на одной ветке...

Механизм работы документов и регистра
Возник вопрос... Вполне возможно, что всё просто, но я уже сутки за работой и может ослепла в решениях.))))))))) В общем, есть...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru