powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / INHERITANCE таблицы
5 сообщений из 5, страница 1 из 1
INHERITANCE таблицы
    #39103132
Pierre Cardin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Правильно я понимаю, что inheritance работает как:

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

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

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


Сам не пользовался. Вам не советую
...
Рейтинг: 0 / 0
INHERITANCE таблицы
    #39106200
Lonepsycho
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
INHERITANCE таблицы
    #39106289
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
INHERITANCE таблицы
    #39106321
qwwq
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поправляю (невнятицу напейсал. не проснулсо -- проблемы с изложением фантазий)
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
5 сообщений из 5, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / INHERITANCE таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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