Re: CHECK vs REFERENCES

Поиск
Список
Период
Сортировка
От Michael Fuhr
Тема Re: CHECK vs REFERENCES
Дата
Msg-id 20050910034907.GA40382@winnie.fuhr.org
обсуждение исходный текст
Ответ на CHECK vs REFERENCES  ("Marc G. Fournier" <scrappy@postgresql.org>)
Ответы Re: CHECK vs REFERENCES  ("Marc G. Fournier" <scrappy@postgresql.org>)
Список pgsql-performance
On Sat, Sep 10, 2005 at 12:23:19AM -0300, Marc G. Fournier wrote:
> Which is faster, where the list involved is fixed?  My thought is that
> since it doesn't have to check a seperate table, the CHECK itself should
> be the faster of the two, but I can't find anything that seems to validate
> that theory ...

Why not just benchmark each method as you intend to use them?  Here's
a simplistic example:

CREATE TABLE test_none (
    val  integer NOT NULL
);

CREATE TABLE test_check (
    val  integer NOT NULL CHECK (val IN (1, 2, 3, 4, 5))
);

CREATE TABLE test_vals (
    id  integer PRIMARY KEY
);
INSERT INTO test_vals SELECT * FROM generate_series(1, 5);

CREATE TABLE test_fk (
    val  integer NOT NULL REFERENCES test_vals
);

\timing

INSERT INTO test_none SELECT 1 FROM generate_series(1, 100000);
INSERT 0 100000
Time: 3109.089 ms

INSERT INTO test_check SELECT 1 FROM generate_series(1, 100000);
INSERT 0 100000
Time: 3492.344 ms

INSERT INTO test_fk SELECT 1 FROM generate_series(1, 100000);
INSERT 0 100000
Time: 23578.853 ms

--
Michael Fuhr

В списке pgsql-performance по дате отправления:

Предыдущее
От: "Marc G. Fournier"
Дата:
Сообщение: CHECK vs REFERENCES
Следующее
От: "Marc G. Fournier"
Дата:
Сообщение: Re: CHECK vs REFERENCES