@pgsql

Страница 219 из 1062
Fike
17.01.2017
08:05:16
вчерашний разговор об условиях задачи

Dmitry
17.01.2017
08:05:28
скорость с субд вообще помоему на втором месте

Vladislav
17.01.2017
08:05:48
а потом прочитаешь все данные, которые там лежат
С чего вдруг? ? ты в курсе, в какой момент читаются все данные?

Google
Fike
17.01.2017
08:06:10
ну что ты, ты делаешь запрос, чтобы не прочитать из таблицы данные

Vladislav
17.01.2017
08:06:23
Yury
17.01.2017
08:07:01
Прочитает индекс
он не просто почитает, он будет в нём искать причём каждый ключь по отдельности

Прочитает индекс
а потом по полученому tid искать данные в основной таблице

а потом по полученому tid искать данные в основной таблице
а это то же не самый быстрый процесс... в postgres все агрегаты упираются в скорость распаковки данных из тюплов. это к примеру

Yury
17.01.2017
08:14:58
Vladislav
17.01.2017
08:15:07
и еще

при денормализации будет сплошная таблица фактов, малейшее условие - это скан таблицы

Yury
17.01.2017
08:15:51
данные "ключ-значение" читаются в рамках индекса
чего? в postgres индексы отделены от данных.

Vladislav
17.01.2017
08:15:58
иии?
я так понимаю, что такое индекс и как он работает вам неизвестно

Google
Vladislav
17.01.2017
08:16:36
ну так будут те же индексы по нужным полям
так будет по меньшей таблице, а джойны отсеют данные

Yury
17.01.2017
08:17:10
я так понимаю, что такое индекс и как он работает вам неизвестно
я понимаю как они работают в postgres так как я их там ковырял (brin, gist).

Vladislav
17.01.2017
08:18:04
ну т.е. вы понимаете отличие scan от seek, да?

Yury
17.01.2017
08:18:25
так будет по меньшей таблице, а джойны отсеют данные
это всё зависит того какие у вас данные, тут бабушка надвое сказала.

Vladislav
17.01.2017
08:19:00
это всё зависит того какие у вас данные, тут бабушка надвое сказала.
да какие бы они не были, любое условие в одной таблице даст отсев по другой

это стандарт как бы

Yury
17.01.2017
08:19:24
ну т.е. вы понимаете отличие scan от seek, да?
да, толкьо вот postgres этим не оперирует, он с данными через буфер менеджер работает который всегда делает read 8 килобайт даже если надо небольшую ноду в btree прочитать

Mars
17.01.2017
08:19:38
--- Всем привет. Столкнулся с такой проблемой: после массивного апдейта(каждую запись отдельно, не в транзакции) индекс не достроен. Это я понимаю по выборке сразу после апейтов и через какое то время. Это нормальное поведение? Что посмотреть посоветуете? Заранее спасибо

Yury
17.01.2017
08:20:23
короче join двух таблиц медленее чем index-scan по денормализованной таблице у которой размер 2х.

Vladislav
17.01.2017
08:20:28
не суть как называть

ну ок

я даже продолжать не буду, если это так в постгрес - это печально

если вы ошибаетесь, то продолжать нет смысла

Fike
17.01.2017
08:21:14
я правильно понимаю, что сейчас спор ведется все еще про то, что прочитать данные из двух таблиц, перекрещенных джойном - это быстрее, чем прочитать те же данные из заранее подготовленной таблицы?

Mike Chuguniy
17.01.2017
08:21:18
Ну ка ну ка, почему же?
пусть данные в денормализованном отношении и в номализованных - одни и те же. Соответственно, полей, участвующих в во всех и всяческих условиях, одинаковое количество. Только вот в нормализованных отношениях ко всему этому многообразию (или безобразию?) добавляются ключевые поля, по которым джойнятся отношения.

Yury
17.01.2017
08:21:22
конечно, если у вас есть выборка в первой таблице и join со второй будет только один раз... это конечно другой разговор

но мы же говорим про те данные которые имеет смысл денормализовывать

Mike Chuguniy
17.01.2017
08:22:21
но мы же говорим про те данные которые имеет смысл денормализовывать
А какие данные имеет смысл денормализовывать?

Google
Yury
17.01.2017
08:22:39
в денормализации вы сделаете хренову кучу индексов на одну таблицу
а так у вас будет куча индексов на много таблиц...

+ уникальные ключи

Fike
17.01.2017
08:22:47
там будут ровно те же индексы, что нужны и для выборок по двум таблицам

Vladislav
17.01.2017
08:23:02
а так у вас будет куча индексов на много таблиц...
как следствие, я буду читать только то, что необходимо, а не все

Fike
17.01.2017
08:23:06
типа в нормализованной версии я не буду делать индексы по тем полям, по которым я делаю выборки?

Vladislav
17.01.2017
08:23:30
Это повышения формирование таблицы фактов

Вот только таблица фактов в полном виде нужна в редких случаях и обычно там скорость не нужна

денормализация нужна только для olap и подобия

Fike
17.01.2017
08:24:00
то есть при выборках в нормализованных данных я не буду использовать индексы?

Mike Chuguniy
17.01.2017
08:24:29
Это повышения формирование таблицы фактов
Простите, пожалуйста, но я не понимаю данной фразы. От слова совсем. НЕ согблаговолит ли благородный дон, объяснить ее смысл?

Yury
17.01.2017
08:24:47
если у тебя практически любой запрос делает join данных в отношениии 1 к 1 то тут и нужна денормализация

Fike
17.01.2017
08:24:48
пока это звучит так

Fike
17.01.2017
08:25:21
короче, смотри

у меня в приложении есть страница "друзья друзей"

а пользователей я храню в виде 1024-колоночной таблицы, потому что мне по фану степени двойки

для друзей друзей я подготавливаю отдельную таблицу, где у меня всего четыре колонки, и я сразу могу выбирать по пользователю

Google
Fike
17.01.2017
08:26:36
это все еще медленнее, чем джойны?

Vladislav
17.01.2017
08:27:22
невкурил, почему 4, но у тебя либо избыточность данных, либо джойн

Fike
17.01.2017
08:27:51
для запроса "друзья джрузей" у меня избыточность данных, потому что им не нужно оперировать кучей вещей, которые нужны, скажем, для биллинга

Mike Chuguniy
17.01.2017
08:27:58
Не соблоговолит в таком тоне
А в каком тоне обращаться? Я без подколов, мне реально непонятна фраза. :(

Fike
17.01.2017
08:28:24
не-не

давай не про жопу

Аггей
17.01.2017
08:28:29
Мне кажется тут много "дополнительных факторов" - например структура таблиц, помещаются ли индексы в память, если не помещаются - то скорость io и тп. Что быстрее на абстрактном коне в вакууме не скажешь

Fike
17.01.2017
08:28:32
это медленнее или нет?

Vladislav
17.01.2017
08:29:08
это быстрее, только в чтении, в хранении и записи/обновлении ты в жопе

как только появляется новый пользователь - у тебя лишния запись в БД

Yury
17.01.2017
08:29:58
как только появляется новый пользователь - у тебя лишния запись в БД
если он появляется в 0.00001% случаев от чтения то это замечательно

Vladislav
17.01.2017
08:30:09
под словом "запись" я подразумеваю не только сам факт наличия данных, но и процесс

Yury
17.01.2017
08:31:42
ну я вот то же у себя пишу некоторые данные сразу в 4 места (не говоря уже про кеш), но делаю я это раз в 5-10 минут вообще (а не для каждого объекта), а читаю я данные из таблицы до сотни раз в секунду. Ну вот и бенефит.

у меня с начала всё было нормализованно, после денормализации я смог ускорится где то в 20х раз .

Fike
17.01.2017
08:32:33
про хранение и записи смотри выше про SSOT

Vladislav
17.01.2017
08:33:00
в рамках постгреса может это у вас заебись практика

Google
Yury
17.01.2017
08:33:21
в postgres есть транзакции, ура! :)

Vladislav
17.01.2017
08:33:24
но в рамках архитектуры БД, это полный ппц

Fike
17.01.2017
08:33:37
чувак, я на кассандре вообще пишу, когда у меня нет условий конкретного движка

Vladislav
17.01.2017
08:33:52
молодец, а я пользуюсь БД под проект

Fike
17.01.2017
08:34:07
если ты соизволишь почитать, как сейчас делаются дела в двадцать первом веке - ты узнаешь, что вот так они и делаются

Fike
17.01.2017
08:34:37
господи, авито - это помойка

Vladislav
17.01.2017
08:34:49
господи, авито - это помойка
ну а твои бложики не помойка, ок

Fike
17.01.2017
08:34:55
а аргумент к авторитету - это худший аргумент на свете

Yury
17.01.2017
08:35:05
но в рамках архитектуры БД, это полный ппц
дык по тому что теория мало сейчас связана с практикой, всё сильно поменялось с 80х

Vladislav
17.01.2017
08:35:51
дык по тому что теория мало сейчас связана с практикой, всё сильно поменялось с 80х
ага, шли от денормализации к нормалным формам от 3NF до 6NF, а тут вдруг выясняется, что в постгресе заебись денормализация

вон, в кликхаус денормализация

а толку

все прекрасно работает, пока в лучшем случае звезда

как только надо написать сложный запрос, получить точное значние или сделать снежинку - мы в жопе

Fike
17.01.2017
08:37:01
началось

anchor model bingo

Vladislav
17.01.2017
08:37:11
а поменять структуру, так это вообще полный анрил

Yury
17.01.2017
08:37:17
ага, шли от денормализации к нормалным формам от 3NF до 6NF, а тут вдруг выясняется, что в постгресе заебись денормализация
так оно и есть, говорю как разработчик postgres, у postgres вообще проблемы с запросами у которых больше 8 join

Страница 219 из 1062