
Yaroslav
08.08.2018
11:29:36

Subb98
08.08.2018
11:30:51
как посчитали "сотни тысяч"? )

Yaroslav
08.08.2018
11:31:07
А, и Вы ещё упоминали про репликацию... её тоже посчитайте.

Google

Ilia
08.08.2018
11:33:20

Jim
08.08.2018
11:34:22

Yaroslav
08.08.2018
11:34:43

Ilia
08.08.2018
11:35:36

Роман
08.08.2018
11:35:40

Yaroslav
08.08.2018
11:38:43

Jim
08.08.2018
11:39:12
больше похоже на массив байтов в hex

Ilia
08.08.2018
11:41:06

Jim
08.08.2018
11:41:26
ba dum tss

Yaroslav
08.08.2018
11:49:36
А у кого какие мнения по CTE inlining patch?
Например, похоже, что в основном пока многие склоняются к варианту:
. WITH a(z, x) AS [MATERIALIZED] (...)
. Никаких GUC-ов не давать, по умолчанию — inline.

Ilia
08.08.2018
11:54:13

Google

Yaroslav
08.08.2018
11:55:14

Darafei
08.08.2018
11:56:19
Undefined behavior надо время от времени ломать

Yaroslav
08.08.2018
11:56:43

Ilia
08.08.2018
11:58:45

Darafei
08.08.2018
11:59:29
А на каком оптимизаторе она может обойтись без хинтов?

Yaroslav
08.08.2018
11:59:46

Darafei
08.08.2018
12:00:38
Мне нравился индексный selectivity estimator для полигонов, что ли, в постгресе
return 0.000001 // user created index, let's use it
Или как-то так

Ilia
08.08.2018
12:03:18

Yaroslav
08.08.2018
12:05:46

Ilia
08.08.2018
12:08:03
Считается, что 20% современные CBO не могут оптимизировать по определению. Оценки, конечно, оценочные. Может 10. Может 30. может 5. Но не все.
Принципиально это.
CBO действуют на основе урезанных метаданных о данных, они не могут быть 100% точны

Yaroslav
08.08.2018
12:10:59
Ну выше же.
Ну, оптимизаторы вообще не предназначены для оптимизации 100% запросов автоматом. ;)
(И hint-ами тут делу сильно не поможешь, кстати.)
Проблема тут в том, что лекарство хуже болезни. :(

Ilia
08.08.2018
12:11:17

Yaroslav
08.08.2018
12:11:42

Ilia
08.08.2018
12:12:05
Ну, естественно.

Yaroslav
08.08.2018
12:12:31

Google

Yaroslav
08.08.2018
12:13:50
Я видел немало приложений, за-hint-ованных "вусмерть". :(
Видимо, на основании "что там эти оптимизаторы, мы-то знаем, как надо!".

Ilia
08.08.2018
12:14:35

Heisenberg
08.08.2018
12:16:08
Всем привет. Такая проблема в постгре: в WHERE мне необходимо сделать два подселекта и вывести true, если у них есть хотя бы одна общая строка. Как это можно сделать грамотно?

Yaroslav
08.08.2018
12:18:42

Ilia
08.08.2018
12:18:58

Heisenberg
08.08.2018
12:19:15
спасибо

Yaroslav
08.08.2018
12:20:02

Heisenberg
08.08.2018
12:20:10
да да
я именно так и сделаю щас

Ilia
08.08.2018
12:22:06

Gennady
08.08.2018
12:26:04
Это серьёзное заблуждение, что из серьёзных БД только в PG нет хинтов. Есть ещё teradata, там тоже нет хинтов.

Yaroslav
08.08.2018
12:26:35


Ilya
08.08.2018
12:29:10
Добрый день! Помогите пожалуйста составить запрос. Есть 3 таблицы:
chats:
| chat_id | client_id | operator_id |
| 1 | 12 | 17 |
| 2 | 13 | 22 |
categories:
| chat_id | category_id |
| 1 | 178 |
| 1 | 202 |
| 1 | 300 |
| 2 | 24 |
messages:
| message_id | chat_id | response |
| 1 | 1 | 51 |
| 2 | 1 | 12 |
| 3 | 2 | 11 |
| 4 | 2 | 30 |
| 5 | 2 | 5 |
Нужно одним запросом получить данные в виде:
| chat_id | client_id | operator_id | cats | first_response |
| 1 | 12 | 17 | [178, 202, 300] | 51 |
| 2 | 13 | 22 | [24] | 11 |
Проблема в полях categories и first_response. По отдельности их заполнить есть варианты:
С categories:
SELECT chats.*, JSON_AGG(categories.category_id) as cats
FROM chats
LEFT JOIN categories USING (chat_id)
GROUP BY chats.chat_id
ORDER BY chats.chat_id
С first_response:
SELECT DISTINCT ON (chats.id) chats.*, messages.first_response
FROM chats
LEFT JOIN messages USING (chat_id)
ORDER BY chats.chat_id, messages.message_id
А чтобы вместе - ничего не могу придумать.


Yaroslav
08.08.2018
12:29:18


Ilya
08.08.2018
12:37:13

Yaroslav
08.08.2018
12:43:21

Ilya
08.08.2018
12:57:14

artb1sh
08.08.2018
12:57:14
pg_dump через FETCH а не COPY
плюсы и минусы?

Google

artb1sh
08.08.2018
12:58:34
pg_dump: COPY vs INSERT?

Yaroslav
08.08.2018
13:03:02

artb1sh
08.08.2018
13:03:57

Yaroslav
08.08.2018
13:10:06

Vlad
08.08.2018
13:12:55
Посоветуйте, пожалуйста, pgsql провайдер для EF Core (.net core)

Ilya
08.08.2018
13:14:04

Yaroslav
08.08.2018
13:14:25

Admin
ERROR: S client not available

Yaroslav
08.08.2018
13:14:51

Ilya
08.08.2018
13:17:30

Yaroslav
08.08.2018
13:19:09

Ilya
08.08.2018
13:20:57

The
08.08.2018
13:21:49
у кого-то есть дизайны БД под товары? сижу тут рисую уже какую версию, и вот думаю, бренд - это характеристика артикула или товара. С одной стороны - артикула, с другой, товара. Но если рассмотреть товары-комплекты, тогда два артикула могут быть разных брендов. Чето я подгрузился.

Yaroslav
08.08.2018
13:27:36

Виктор
08.08.2018
13:30:58

Ilia
08.08.2018
13:33:18

Darafei
08.08.2018
13:39:21

Ilia
08.08.2018
13:39:43

Google

Ilia
08.08.2018
13:40:45

The
08.08.2018
13:41:09
бренд - это тег
я бы сказал, что бренд - это характеристика товара, скорее. но опять таки, характеристики можно лепить на товар и на артикул. я конечно предпочитаю на артикул, но например есть товар у которого может быть 10+ артикулов, и появляется хоть и не существенная, но избыточность. а учитывая, что я хочу попробовать хранить это в JSON, выходит больно.

Yaroslav
08.08.2018
13:41:33

Darafei
08.08.2018
13:42:32

Ilia
08.08.2018
13:42:43


Yaroslav
08.08.2018
13:43:16

The
08.08.2018
13:43:33
думал уже в json писать только k:v самих характеристик, т.е. {"brand":"samsung"}, а в другой табличке хранить всю инфу по характеристике со всеми её значениями, и локализациями/интернационализациями/мета информацией.
Например, цвет можно писать тупо текстом на двух языках, но намного красивей когда на сайте есть цветовой "пиптик", сразу приятней выбирать фильтры.
короче, уже второй день думаю над реализацией, и не могу продвинуться никуда. за JSON зоопарком следить надо, а за таблицами (6NF) и прочим писать кучу бойлерплейта.
и типизация.. а ещё группировка фильтров, например у товара указан "Объем оперативной памяти: 6ГБ", а в фильтрах можно указать 6-8ГБ, т.е. фильтр - это уже комбинация из двух значений.

Yaroslav
08.08.2018
13:45:44

The
08.08.2018
13:46:07
я стараюсь даже null поля не иметь
без лишней необходимости, тогда валидацию только делаю, и через орм можно писать в базу
хотя, я орм тут юзать не буду
но все равно, JSONB привлекает своей быстротой и удобством, но с другой стороны легко накосячить и надублировать всякого мусора в базе.

Yaroslav
08.08.2018
13:50:06
да нет, у меня MVVM
(брюжжит) Понапридумали всякой фигни, проклятая молодежь! ;)
А подробнее можете рассказать? Вот, например, добавляете вы поле в таблицу, и для того, чтобы оно попало в view/model, Вы делаете что?


The
08.08.2018
13:52:59
(брюжжит) Понапридумали всякой фигни, проклятая молодежь! ;)
А подробнее можете рассказать? Вот, например, добавляете вы поле в таблицу, и для того, чтобы оно попало в view/model, Вы делаете что?
зависит от дизайна базы, но в данном случае я делаю под себя, а не под массовый рынок, а значит мне придется написать миграцию, и в представлении просто отрендерить данный столбец, input допустим. Дальше, зависит от логики, если ОРМ - тогда больше ничего. Если нет ОРМ, тогда поправить логику выборки, сохранения.


Yaroslav
08.08.2018
13:54:05
зависит от дизайна базы, но в данном случае я делаю под себя, а не под массовый рынок, а значит мне придется написать миграцию, и в представлении просто отрендерить данный столбец, input допустим. Дальше, зависит от логики, если ОРМ - тогда больше ничего. Если нет ОРМ, тогда поправить логику выборки, сохранения.
И это Вы не называете boilerplate, почему-то...