11 ответов:
индекс используется для ускорения поиска в базе данных. У MySQL есть хорошая документация по этому вопросу (что имеет отношение и к другим серверам SQL): http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html
индекс может быть использован для эффективного поиска всех строк, соответствующих некоторому столбцу в запросе, а затем пройти только через это подмножество таблицы, чтобы найти точные совпадения. Если у вас нет индексов на любой столбец в
WHEREпредложенияSQLсервер должен пройти через весь стол и проверьте каждую строку, чтобы увидеть, соответствует ли она, что может быть медленной операцией на больших таблицах.индекс также может быть , что означает, что вы не можете иметь повторяющиеся значения в этом столбце, или
PRIMARY KEYкоторый в некоторых системах хранения определяет, где в файле базы данных хранится значение.в MySQL вы можете использовать
EXPLAINпередSELECTутверждение, чтобы увидеть, если ваш запрос будет использовать любые индекс. Это хорошее начало для устранения проблем с производительностью. Подробнее читайте здесь: http://dev.mysql.com/doc/refman/5.0/en/explain.html
кластеризованный индекс похож на содержимое телефонной книги. Вы можете открыть книгу на Хилдич, Дэвид и найти всю информацию для всех права 'Хилдич рядом друг с другом. Здесь ключи для кластеризованного индекса (фамилия, имя).
Это делает кластеризованные индексы отлично подходит для получения большого количества данных на основе запросов на основе диапазона, так как все данные расположены рядом друг с другом.
Так как кластеризованный индекс фактически связан с тем, как данные сохраненный, есть только один из них возможен в таблице (хотя вы можете обмануть, чтобы имитировать несколько кластеризованных индексов).
некластеризованный индекс отличается тем, что у вас может быть много из них, и они затем указывают на данные в кластеризованном индексе. У вас может быть, например, некластеризованный индекс в задней части телефонной книги, который включен (город, адрес)
представьте себе, если бы вам пришлось искать по телефонной книге для всех людей, которые живут в "Лондоне" - только с кластерным индекс вам придется искать каждый элемент в телефонной книге, так как ключ на кластеризованном индексе включен (фамилия, имя), и в результате люди, живущие в Лондоне, разбросаны случайным образом по всему индексу.
Если у вас есть некластеризованный индекс на (город), то эти запросы могут быть выполнены гораздо быстрее.
надеюсь, что это поможет!
очень хорошая аналогия-думать об индексе базы данных как об индексе в книге. Если у вас есть книга о странах, и вы ищете Индию, то зачем вам пролистывать всю книгу – что эквивалентно полному сканированию таблицы в терминологии базы данных – когда вы можете просто перейти к индексу в конце книги, который расскажет вам точные страницы, где вы можете найти информацию об Индии. Точно так же, как индекс книги содержит номер страницы, индекс базы данных содержит указатель к строке, содержащей значение, которое вы ищете в своем SQL.
индекс используется для ускорения выполнения запросов. Это достигается за счет уменьшения количества страниц данных базы данных, которые должны быть посещены/отсканированы.
в SQL Server, a clustered определяет физический порядок данных в таблице. В таблице может быть только один кластеризованный индекс (кластеризованный индекс-это таблица). Все остальные индексы в таблице называются некластеризованными.
индексы все о поиске данных. Индексы в базе данных аналогичны индексам, которые можно найти в книге. Если книга имеет индекс, и я прошу вас найти главу в этой книге, вы можете быстро найти, что с помощью индекса. С другой стороны, если у книги нет указателя, вам придется потратить больше времени на поиск главы, просматривая каждую страницу от начала до конца книги. Аналогичным образом, индексы в базе данных могут помочь запросы для быстрого поиска данных. Если вы новичок в индексах, следующие видео могут быть очень полезны. На самом деле, я многому у них научился.
Основы Индекс
кластеризованные и некластеризованные индексы
уникальные и неуникальные индексы
преимущества и недостатки индексов
Ну вообще индекс это
B-tree. Существует два типа индексов: кластеризованные и некластеризованные.Clustered индекс создает физический порядок строк (он может быть только один, и в большинстве случаев это также первичный ключ - если вы создаете первичный ключ в таблице, вы также создаете кластеризованный индекс в этой таблице).
некластеризованный индекс также является двоичным деревом, но он не создает физического порядка строк. Так что листовые узлы некластеризованные индекс содержит PK (если он существует) или индекс строки.
индексы используются для ускорения поиска. Потому что сложность имеет значение O (log N). Индексы-это очень большая и интересная тема. Я могу сказать, что создание индексов на большой базе данных иногда является своего рода искусством.
INDEXES- чтобы легко найти данные
UNIQUE INDEX- повторяющиеся значения не допускаютсясинтаксис
INDEXCREATE INDEX INDEX_NAME ON TABLE_NAME(COLUMN);синтаксис
UNIQUE INDEXCREATE UNIQUE INDEX INDEX_NAME ON TABLE_NAME(COLUMN);
индекс-это метод оптимизации производительности, который ускоряет процесс поиска данных. Это постоянная структура данных, связанная с таблицей (или представлением) для повышения производительности при извлечении данных из этой таблицы (или представления).
поиск на основе индекса применяется более конкретно, когда ваши запросы включают фильтр WHERE. В противном случае, т. е. запрос без WHERE-filter выбирает все данные и процесс. Поиск всей таблицы без индекса называется Сканирование таблицы.
вы найдете точную информацию для Sql-индексов в ясном и надежном пути: перейдите по следующим ссылкам:
- для понимания cocnept-wise: http://dotnetauthorities.blogspot.in/2013/12/Microsoft-SQL-Server-Training-Online-Learning-Classes-INDEX-Overview-and-Optimizations.html
- для реализации-мудрое понимание: http://dotnetauthorities.blogspot.in/2013/12/Microsoft-SQL-Server-Training-Online-Learning-Classes-INDEX-Creation-Deletetion-Optimizations.html
Если вы используете SQL Server, один из лучших ресурсов-это собственные книги в Интернете, которые поставляются с установкой! Это 1-е место, на которое я бы сослался для любых связанных с SQL Server тем.
Если это практично ", как я должен делать это?- что-то вроде вопросов, тогда StackOverflow будет лучшим местом, чтобы спросить.
кроме того, я не вернулся на некоторое время, но sqlservercentral.com раньше это был один из лучших сайтов, связанных с SQL Server.
An индекс используется по нескольким причинам. Основная причина заключается в ускорении запросов, чтобы вы могли быстрее получать строки или сортировать строки. Другая причина заключается в определении первичного ключа или уникального индекса, который гарантирует, что никакие другие столбцы не имеют одинаковых значений.
Сначала нам нужно понять, как работает обычный (без индексации) запрос. Он в основном пересекает каждую строку по одной, и когда он находит данные, которые он возвращает. См. следующее изображение. (Это изображение было взято из этого видео.)
Поэтому предположим, что запрос должен найти 50, он должен будет прочитать 49 записей как линейный поиск.
см. следующее изображение. (Это изображение было взято из этого видео)
когда мы применяем индексацию, запрос быстро найдет данные, не читая каждый из них, просто исключив половину данных в каждом обходе, как двоичный поиск. Индексы mysql хранятся как B-дерево, где все данные находятся в листовом узле.


Comments