пятница, 13 ноября 2009 г.

Логическая оптимизация - Схемы

Схемы следует использовать для разделения данных разных пользователей, группировки таблиц в системе. Не пугайтесь, если пользователей много - нужно 1000 пользователей, значит, создайте 1000 схем. Постгрес справится, можете быть уверены. Десятки тысяч схем будут отлично работать, если же у Вас большие масштабы, тогда я буду учиться у Вас, а не Вы у меня.

Один из часто задаваемых вопросов по СУБД PostgreSQL такой: как из одной базы данных обратиться к другой базе данных. Зачастую на него отвечают, что существует модуль dblink или указывают на его аналог. Также нередко можно услышать ответ, что подобное реализуется на уровне внешнего приложения. Но правильный ответ один - из одной базы данных следует обращаться исключительно к объектам этой базы данных! Только в пределах одной базы встроенные оптимизатор и планировщик запроса могут обеспечить эффективное его выполнение. Пытаясь обратиться к данным из нескольким баз одновременно, мы теряем все преимущества, которые может нам предоставить СУБД! А для обеспечения разделения наборов данных и доступа к ним в пределах одной базы следует использовать схемы. В этом случае все преимущества эффективной обработки данных сочетаются с возможностью разделения данных и прав доступа к ним.

2 комментария:

Анонимный комментирует...

Сервер Ubuntu 16Гб RAM. Создавал 60 000 схем, по 80 таблиц в каждой, 400 хранимых процедур и 80 триггурных функций. На 10 000 схеме PostgreSQL снимает сама Ubuntu, очень много памяти требует Postgres

Алексей Печников комментирует...

Не нужно хранимки и триггерные функции дублировать - поместите их в схему public.


(C) Alexey Pechnikov aka MBG, mobigroup.ru