Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / INHERITANCE таблицы / 5 сообщений из 5, страница 1 из 1
13.11.2015, 17:06
    #39103132
Pierre Cardin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INHERITANCE таблицы
Правильно я понимаю, что inheritance работает как:

a (master таблица)
a1 inheritance a
a2 inheritance a

Если я выполню select * from a, то я в итоге получу в результате данные a + a1 + a2?

Если это верно, что в этом случае выполняется - UNION или UNION ALL? Насколько быстро работают такие таблицы?
...
Рейтинг: 0 / 0
18.11.2015, 09:23
    #39106175
PCContra
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INHERITANCE таблицы
Скорее на SELECT * FROM a1; вы получите а1 + а;


Сам не пользовался. Вам не советую
...
Рейтинг: 0 / 0
18.11.2015, 09:50
    #39106200
Lonepsycho
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INHERITANCE таблицы
Pierre Cardin,

неужели так сложно устроить маленшкий експеримент?

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TABLE a (fld TEXT);
CREATE TABLE a1() INHERITS (a);
CREATE TABLE a2() INHERITS (a);

INSERT INTO a (fld) VALUES ('a');
INSERT INTO a1 (fld) VALUES ('a1');
INSERT INTO a2 (fld) VALUES ('a2');

INSERT INTO a2 (fld) VALUES ('a'); -- тест на UNION или UNION ALL

SELECT fld FROM a; -- видим что UNION ALL

SELECT fld FROM a1; -- видим что селектится только из а1
...
Рейтинг: 0 / 0
18.11.2015, 10:51
    #39106289
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INHERITANCE таблицы
Pierre Cardin<> Насколько быстро работают такие таблицы?
есть тонкости при запросах к ним, с ограниченными выборками.

оптимайзер более менее справляется, если результат в плане вида limit от merge append
и совсем нет -- если результат вида limit от sort [past [full]] append

а т.к. например простейший
Код: sql
1.
2.
SELECT * FROM t
ORDER BY {not_unique_index_list},pk [для полной определённости] LIMIT 10

оптимайзер не умеет без full [IO|seq] scan+sort => всё очень часто очень печально. вернее -- "медленно и печально" . Или свои выборки писать, наставляющие тупую машинку на путь истинный.


для приведенного -- фантазии на тему:
Код: sql
1.
2.
3.
4.
SELECT * FROM t
WHERE {not_unique_index_list}<= (SELECT {not_unique_index_list} FROM t ORDER BY {not_unique_index_list} LIMIT 10)
--if not nullable
ORDER BY {not_unique_index_list},pk [для полной определённости] LIMIT 10




ну и с апдейтами при большом числе детей и индексов в них -- всё почему--то печально даже при наличии сегментных чеков.

в общем вещь полезная [партицирование] и удобная, но не без проблем
...
Рейтинг: 0 / 0
18.11.2015, 11:11
    #39106321
qwwq
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
INHERITANCE таблицы
поправляю (невнятицу напейсал. не проснулсо -- проблемы с изложением фантазий)
qwwq<>

для приведенного -- фантазии на тему:
Код: sql
1.
2.
3.
4.
SELECT * FROM t
WHERE {not_unique_index_list}<= (SELECT {not_unique_index_list} FROM (SELECT {not_unique_index_list} FROM t ORDER BY {not_unique_index_list} LIMIT 10) FOO ORDER BY {not_unique_index_list} DESC LIMIT 1 )
--if not nullable
ORDER BY {not_unique_index_list},pk [для полной определённости] LIMIT 10



<>
в опчем -- в 2 стэп. [если опять не наврал -- но мылсь, надеюсь, поянсил]
...
Рейтинг: 0 / 0
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / INHERITANCE таблицы / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]