1. Postgresql 8.4 + PostGis 1.5.1 оказался в 4 раза производительнее при использовании st_intersects на большом кол-ве данных, нежели Postgresql 8.3 + PostGis 1.3
2. Слышали про магическое "\d" в psql? Не знаете какие же запросы делает этот оператор? Вот вам лекарство: "\set ECHO_HIDDEN t"
3. Как вывод из предыдущего пункта, напрашивается решение следующих вопросов:
* "А как создать таблицу, но только если она еще не существует?"
* "А как создать индекс, но только если он еще не существует?"
В Postgresql это решается обёрткой создания в функцию следующего вида:
2. Слышали про магическое "\d" в psql? Не знаете какие же запросы делает этот оператор? Вот вам лекарство: "\set ECHO_HIDDEN t"
3. Как вывод из предыдущего пункта, напрашивается решение следующих вопросов:
* "А как создать таблицу, но только если она еще не существует?"
* "А как создать индекс, но только если он еще не существует?"
В Postgresql это решается обёрткой создания в функцию следующего вида:
CREATE OR REPLACE FUNCTION create_tables_if_not_exist()
RETURNS void AS
$BODY$
BEGIN
IF NOT EXISTS ( select * from pg_class where relname = 'countries' ) THEN
CREATE TABLE countries
(
id serial NOT NULL,
geom geometry,
name character varying(80),
cid integer,
CONSTRAINT countries_pkey PRIMARY KEY (id)
)
WITH (OIDS=FALSE);
END IF;
END;
$BODY$ language 'plpgsql';
No comments:
Post a Comment