LINUX.ORG.RU

Нужно ли создавать индексы для объявленных UNIQUE столбцов?

 


0

1

Если создать таблицу так, как ниже, SQLite автоматически создаст индекс с именем, начинающимся с sqlite_autoindex_, и будет его использовать при запросах, если верить EXPLAIN QUERY PLAN.

CREATE TABLE t (
  a TEXT,
  UNIQUE (a)
);


Имеет ли смысл делать

CREATE UNIQUE INDEX t_a ON t(a);


то есть явно создавать индекс по этому полю, или он будет просто занимать место?

И есть ли вообще разница между одним и другим?



Последнее исправление: kinkstarter (всего исправлений: 1)

То есть суть вопроса в том, есть ли разница между «internal index», создаваемым автоматически, и индексом, создаваемым вручную.

kinkstarter
() автор топика

Смысла нет.

anonymous
()

В любой непонятной ситуации смотри документацию

In most cases, UNIQUE and PRIMARY KEY constraints are implemented by creating a unique index in the database. (The exceptions are INTEGER PRIMARY KEY and PRIMARY KEYs on WITHOUT ROWID tables.) Hence, the following schemas are logically equivalent:

CREATE TABLE t1(a, b UNIQUE);
CREATE TABLE t1(a, b PRIMARY KEY);
CREATE TABLE t1(a, b);
CREATE UNIQUE INDEX t1b ON t1(b);
theNamelessOne ★★★★★
()
Последнее исправление: theNamelessOne (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.