Здравствуйте, blonduser, Вы писали:
B>Всем доброго времени суток!
B>В чем различие по скорости выполнения запросов между PRIMARY KEY(FOREIGN KEY) и обычного индекса? https://en.wikipedia.org/wiki/Database_index
Підтримати Україну у боротьбі з країною-терористом.
Здравствуйте, blonduser, Вы писали:
B>Всем доброго времени суток!
B>В чем различие по скорости выполнения запросов между PRIMARY KEY(FOREIGN KEY) и обычного индекса?
Primary key и foreign key это ограничения целостности, элементы логической структуры БД. Индекс это структура для эффективного доступа к данным таблицы, элемент физической структуры БД. То есть концептуально это совсем разные понятия, напрямую не сравнимые друг с другом.
В принципе, primary/foreign key может существовать и без соответствующего индекса и продолжать выполнять свою задачу. Если же он поддерживается индексом, то это не какой-то особый индекс, а самый обычный.
На скорость выполнения запросов влияет и то, и другое. При построении плана выполнения запроса независимо учитывается и наличие индексов, и имеющиеся ограничения (со всей пользой, которую можно извлечь из этого знания).
Re[2]: PRIMARY KEY(FOREIGN KEY) против INDEX (sql2008)
Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, blonduser, Вы писали:
B>>Всем доброго времени суток!
B>>В чем различие по скорости выполнения запросов между PRIMARY KEY(FOREIGN KEY) и обычного индекса?
W>Primary key и foreign key это ограничения целостности, элементы логической структуры БД. Индекс это структура для эффективного доступа к данным таблицы, элемент физической структуры БД. То есть концептуально это совсем разные понятия, напрямую не сравнимые друг с другом.
W>В принципе, primary/foreign key может существовать и без соответствующего индекса и продолжать выполнять свою задачу. Если же он поддерживается индексом, то это не какой-то особый индекс, а самый обычный.
W>На скорость выполнения запросов влияет и то, и другое. При построении плана выполнения запроса независимо учитывается и наличие индексов, и имеющиеся ограничения (со всей пользой, которую можно извлечь из этого знания).
Вот именно мой интерес был в том, что проверка целостности не замедляет работу с данными(добавление, удаление, редактирование).
Re[3]: PRIMARY KEY(FOREIGN KEY) против INDEX (sql2008)
Здравствуйте, blonduser, Вы писали:
B>Вот именно мой интерес был в том, что проверка целостности не замедляет работу с данными(добавление, удаление, редактирование).
Да, при выборке помогает, а при изменении замедляет. Особенно если нет соответствующего индекса. Индекс сам по себе тоже немного замедляет, ведь его нужно поддерживать в актуальном состоянии. Но без индекса гораздо хуже.
Re[4]: PRIMARY KEY(FOREIGN KEY) против INDEX (sql2008)
Здравствуйте, wildwind, Вы писали:
W>Здравствуйте, blonduser, Вы писали:
B>>Вот именно мой интерес был в том, что проверка целостности не замедляет работу с данными(добавление, удаление, редактирование).
W>Да, при выборке помогает, а при изменении замедляет. Особенно если нет соответствующего индекса. Индекс сам по себе тоже немного замедляет, ведь его нужно поддерживать в актуальном состоянии. Но без индекса гораздо хуже.
Ок. Спасибо.