Size: a a a

pgsql – PostgreSQL

2021 January 05

��� in pgsql – PostgreSQL
0xFF
У меня много таблиц, где встречаются такие колонки как: ID, name.
Стоит ли создать одну базовую таблицу с такими колонками, и от него уже наследовать остальные таблицы? Это + к читабельности кода? В чем профит наследования?
источник

M

Mentat in pgsql – PostgreSQL
Занес в закладки, спасибо
источник

SD

Sergey D in pgsql – PostgreSQL
Всем привет. У нас на Амазон RDS стоит PostreSQL и периодически у нас возникает проблема, что процессор загружается на 100% без видимой на то причины. Сложных запросов в базу не отправляем, количество конектов не более 30. Может кто-то сталкивался с такой проблемой ?
источник

Dam Махмутов in pgsql – PostgreSQL
Sergey D
Всем привет. У нас на Амазон RDS стоит PostreSQL и периодически у нас возникает проблема, что процессор загружается на 100% без видимой на то причины. Сложных запросов в базу не отправляем, количество конектов не более 30. Может кто-то сталкивался с такой проблемой ?
Советую проверить секьюрити группы и vpc. Если они открыты, то скорее всего это сканеры.
источник

Н

Не выходи из комнаты... in pgsql – PostgreSQL
Привет. Нужна помощь с запросами.
Есть таблица - folders, связанная по fk с users и m2m с invoices.
Как можно одним запросом получить:
1. количество folders определённого юзера
2. количество всех инвойсов со всех folders юзера (уникальных)
источник

am

a m in pgsql – PostgreSQL
1. SELECT count(*) FROM folders WHERE user_id = $1 /* было сложно */
2. SELECT count(*) FROM invoices WHERE id IN (SELECT invoice_id FROM invoices_folders WHERE folder_id IN (SELECT id FROM folders WHERE user_id = ?)) /* даже джоинить учиться не надо, хай постгрес сам оптимизирует */
источник

Н

Не выходи из комнаты... in pgsql – PostgreSQL
a m
1. SELECT count(*) FROM folders WHERE user_id = $1 /* было сложно */
2. SELECT count(*) FROM invoices WHERE id IN (SELECT invoice_id FROM invoices_folders WHERE folder_id IN (SELECT id FROM folders WHERE user_id = ?)) /* даже джоинить учиться не надо, хай постгрес сам оптимизирует */
Спасибо. Попробую.
А не подскажете сайт, где можно набросать таблицы и протестить запросы?
источник

В

Виктор in pgsql – PostgreSQL
Не выходи из комнаты.
Спасибо. Попробую.
А не подскажете сайт, где можно набросать таблицы и протестить запросы?
Я для подобных задач докер использую. Перезапустил контейнер - вот тебе чистая база.
источник

��� in pgsql – PostgreSQL
Не выходи из комнаты.
Спасибо. Попробую.
А не подскажете сайт, где можно набросать таблицы и протестить запросы?
источник

am

a m in pgsql – PostgreSQL
Виктор
Я для подобных задач докер использую. Перезапустил контейнер - вот тебе чистая база.
В одном предложении выражена вся суть докера.
Простите.
источник

В

Виктор in pgsql – PostgreSQL
a m
В одном предложении выражена вся суть докера.
Простите.
За что прощать? 😅
источник

ᴀᴋ

ᴀʟᴇxᴀɴᴅʀ ᴋᴜᴢɴᴇᴛsᴏᴠ... in pgsql – PostgreSQL
Всем привет!
Что можете сказать касательно использования массивов на практике ? Допустим список языков пользователя хранить лучше в массиве или делать отдельную таблицу с (id, user_id, language)?
источник

Н

Не выходи из комнаты... in pgsql – PostgreSQL
a m
1. SELECT count(*) FROM folders WHERE user_id = $1 /* было сложно */
2. SELECT count(*) FROM invoices WHERE id IN (SELECT invoice_id FROM invoices_folders WHERE folder_id IN (SELECT id FROM folders WHERE user_id = ?)) /* даже джоинить учиться не надо, хай постгрес сам оптимизирует */
Тут, кстати, считаются все инвойсы юзера, а не уникальные
источник

am

a m in pgsql – PostgreSQL
Не выходи из комнаты.
Тут, кстати, считаются все инвойсы юзера, а не уникальные
В этом запросе считаются уникальные строки. Если вы в эти уникальные строки засунули одинаковые данные, то тут не я виноват.
источник

am

a m in pgsql – PostgreSQL
ᴀʟᴇxᴀɴᴅʀ ᴋᴜᴢɴᴇᴛsᴏᴠ
Всем привет!
Что можете сказать касательно использования массивов на практике ? Допустим список языков пользователя хранить лучше в массиве или делать отдельную таблицу с (id, user_id, language)?
За всю жизнь никогда не видел применения массивов на практике, кроме как для подсовывания в запрос с ANY.
Но гром не грянет, если вы эти языки сделаете массивом и пойдете спать.
Делать отдельную таблицу «правильнее», только она у вас уже денормализована. Делайте languages (id, name) и m2m с users.
источник

ᴀᴋ

ᴀʟᴇxᴀɴᴅʀ ᴋᴜᴢɴᴇᴛsᴏᴠ... in pgsql – PostgreSQL
a m
За всю жизнь никогда не видел применения массивов на практике, кроме как для подсовывания в запрос с ANY.
Но гром не грянет, если вы эти языки сделаете массивом и пойдете спать.
Делать отдельную таблицу «правильнее», только она у вас уже денормализована. Делайте languages (id, name) и m2m с users.
Понял, спасибо, то же самое получается можно сказать и касательно списка допустим подписчиков группы, списка скилов и остальных подобных вещей ?
Только я не совсем понял что значит m2m?
источник

VG

Viktor Grigorev in pgsql – PostgreSQL
мне кажется, тут нет правильного ответа, у обоих вариантов есть плюсы и минусы. Можно начать с более простого в реализации варианта
источник

am

a m in pgsql – PostgreSQL
ᴀʟᴇxᴀɴᴅʀ ᴋᴜᴢɴᴇᴛsᴏᴠ
Понял, спасибо, то же самое получается можно сказать и касательно списка допустим подписчиков группы, списка скилов и остальных подобных вещей ?
Только я не совсем понял что значит m2m?
m2m — many-to-many.
Со списком подписчиков группы в виде массива на вас сразу обрушатся небесные кары. Например, вы останетесь без внешних ключей. Юзера удалили, а он до сих пор подписан на какую-то группу.
С языками попроще, так как они торчат сбоку, очень редко меняются и основном разве что добавляются.
источник

ᴀᴋ

ᴀʟᴇxᴀɴᴅʀ ᴋᴜᴢɴᴇᴛsᴏᴠ... in pgsql – PostgreSQL
Viktor Grigorev
мне кажется, тут нет правильного ответа, у обоих вариантов есть плюсы и минусы. Можно начать с более простого в реализации варианта
А какой из этих вариантов можно считать более простым ?
источник

VG

Viktor Grigorev in pgsql – PostgreSQL
а с каким у вас уже был опыт?
источник