Что такое индекс в SQL?

Смущающе сказать это, но когда у меня возникла эта проблема, было просто ошибкой, что я закрывал соединение, прежде чем я прочитал все данные. В случаях, когда возвращаются маленькие строки, это сработало, но, вероятно, из-за того, что весь ответ был буферизирован до того, как я его закрыл.

В случае более длительного количества возвращаемого текста исключение было выбрано, так как больше назад возвращался буфер.

Вы можете проверить этот контроль. Помните, что открытие URL-адреса похоже на файл, обязательно закройте его (отпустите соединение) после его полного чтения.

392
задан Dorian 30 June 2014 в 18:14
поделиться

6 ответов

Индекс используется для ускорения поиска в базе данных. У MySQL есть хорошая документация по этому вопросу (которая актуальна и для других SQL-серверов): http://dev.mysql.com/doc/refman/5.0/en/mysql-indexes.html

Индекс можно использовать для эффективного поиска всех строк, соответствующих некоторому столбцу в вашем запросе, а затем для просмотра только это подмножество таблицы, чтобы найти точные совпадения. Если у вас нет индексов ни для одного столбца в предложении WHERE , сервер SQL должен просмотреть всю таблицу и проверить каждую строку, чтобы убедиться, что он совпадает, что может быть медленной операцией на больших таблицах.

Индекс также может быть индексом UNIQUE , что означает, что у вас не может быть повторяющихся значений в этом столбце, или PRIMARY KEY , который в некоторых механизмах хранения определяет, где в базе данных файл значение сохраняется.

В MySQL вы можете использовать EXPLAIN перед оператором SELECT , чтобы увидеть, будет ли ваш запрос использовать какой-либо индекс. Это хорошее начало для устранения проблем с производительностью. Подробнее читайте здесь: http://dev.mysql.com/doc/refman/5.0/en/explain.html

347
ответ дан 22 November 2019 в 23:35
поделиться

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

Вы видите [еще 110] о sql, индексирующем здесь

1
ответ дан 29 August 2019 в 09:24
поделиться

Индекс используется по нескольким причинам. Основная причина - ускорить выполнение запросов, чтобы вы могли быстрее получать или сортировать строки. Другая причина - определить первичный ключ или уникальный индекс, который будет гарантировать, что никакие другие столбцы не имеют таких же значений.

6
ответ дан 22 November 2019 в 23:35
поделиться

Индекс используется для ускорения выполнения запросов. Он делает это путем уменьшения количества страниц данных базы данных, которые необходимо посетить/сканировать.

В SQL Server кластеризованный индекс определяет физический порядок данных в таблице. В таблице может быть только один кластеризованный индекс (кластеризованный индекс является таблицей). Все остальные индексы в таблице называются некластеризованными.

82
ответ дан 22 November 2019 в 23:35
поделиться

В общем индекс представляет собой B-дерево . Есть два типа индексов: кластеризованные и некластеризованные.

Кластерный индекс создает физический порядок строк (это может быть только один, и в большинстве случаев он также является первичным ключом - если вы создаете первичный ключ для таблицы, вы также создаете кластерный индекс для этой таблицы).

Некластеризованный индекс также является двоичным деревом, но он не создает физического порядка строк. Таким образом, конечные узлы некластеризованного индекса содержат PK (если он существует) или индекс строки.

Индексы используются для увеличения скорости поиска. Потому что сложность O (log N). Индексы - очень большая и интересная тема. Могу сказать, что создание индексов для большой базы данных иногда является своего рода искусством.

23
ответ дан 22 November 2019 в 23:35
поделиться

Если вы используете SQL Server, одним из лучших ресурсов является его собственная электронная документация, которая поставляется вместе с установкой! Это первое место, на которое я бы сослался по ЛЮБЫМ темам, связанным с SQL Server.

Если это практично, «как мне это сделать?» вопросы, то лучше задать их на StackOverflow.

Кроме того, я давно не возвращался, но sqlservercentral.com раньше был одним из самых популярных сайтов, связанных с SQL Server.

6
ответ дан 22 November 2019 в 23:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: