
Pavel
10.11.2016
09:19:41

Pavel
10.11.2016
09:19:51
спасибо

Dmitry
10.11.2016
09:25:58

Sergey
10.11.2016
09:30:19
Всем привет, есть вопрос. В каком случае может быть ситуация когда в зависимости от id по которому идет выборка с условием сортировки в одном случае Sort Method: top-N heapsort Memory: 25kB используется, а в другом нет?

Google

Sergey
10.11.2016
09:30:55
И как с ней бороться?

Evgeniy
10.11.2016
09:46:08
покажи запросы
вообще вот тут https://github.com/postgres/postgres/blob/master/src/backend/utils/sort/tuplesort.c#L1575 написано когда делается т.н. топ-н хип сорт

Sergey
10.11.2016
09:51:10
explain analyze SELECT "external_device_sessions".* FROM "external_device_sessions" WHERE "external_device_sessions"."exteral_user_device_id" = 5023436 AND (to_char(created_at, 'YYYY-MM-DD') = '2016-11-08' and latitude is not null) ORDER BY "external_device_sessions"."id" ASC LIMIT 1;
explain SELECT "external_device_sessions".* FROM "external_device_sessions" WHERE "external_device_sessions"."exteral_user_device_id" = 269783 AND (to_char(created_at, 'YYYY-MM-DD') = '2016-11-08' and latitude is not null) ORDER BY "external_device_sessions"."id" ASC LIMIT 1;
в последнем heapsort не используется
Это случилось после того как я из таблицы external_device_sessions перенес и удалил данные за 2015 год
в старых данных фигурирует id 269783
и именно с ним запрос не кэшируется

Evgeniy
10.11.2016
09:54:00
быть может тебе лучше создать композитный индекс?

Sergey
10.11.2016
09:54:18
на сортировку с exteral_user_device_id

Evgeniy
10.11.2016
10:00:46
это самое, а покажи explain analyze на оба
а то ты пишешь что в последнем не используется, но он только с explain у тебя
мне кажется что переключение сортировки идет в рантайме

Google

Evgeniy
10.11.2016
10:01:39
в этом случае
и я так и не понял почему ты не хочешь сделать композитный индекс

Sergey
10.11.2016
10:29:05
да я когда копировал забыл analyze
Сейчас кину explain
Композитный индекс хочу добавить, но не могу пока, таблица очень большая

Andrey
10.11.2016
10:32:04
всем привет
есть кто-нибудь, кто может проконсультировать по асинхронным функциям libpq?


Sergey
10.11.2016
10:33:26
это самое, а покажи explain analyze на оба
Первый
Limit (cost=1388.90..1388.91 rows=1 width=127) (actual time=0.059..0.059 rows=0 loops=1)
-> Sort (cost=1388.90..1388.91 rows=1 width=127) (actual time=0.058..0.058 rows=0 loops=1)
Sort Key: id
Sort Method: quicksort Memory: 25kB
-> Index Scan using index_external_device_sessions_on_exteral_user_device_id on external_device_sessions (cost=0.57..1388.89 rows=1 width=127) (actual time=0.050..0.050 rows=0 loops=1)
Index Cond: (exteral_user_device_id = 5029272)
Filter: ((latitude IS NOT NULL) AND (to_char(created_at, 'YYYY-MM-DD'::text) = '2016-11-08'::text))
Rows Removed by Filter: 5
Total runtime: 0.117 ms
Второй
Limit (cost=0.57..22107.31 rows=1 width=127) (actual time=49507.899..49507.900 rows=1 loops=1)
-> Index Scan using external_device_sessions_pkey on external_device_sessions (cost=0.57..9726967.16 rows=440 width=127) (actual time=49507.899..49507.899 rows=1 loops=1)
Filter: ((latitude IS NOT NULL) AND (exteral_user_device_id = 269783) AND (to_char(created_at, 'YYYY-MM-DD'::text) = '2016-11-08'::text))
Rows Removed by Filter: 76169092
Total runtime: 49507.944 ms


Kirill
10.11.2016
10:37:47
на Rows Removed by Filter посмотрите и в бабахайте индекс device, date(created_at) where latitude is not null

Dmitrii
10.11.2016
10:39:01
Дорогой индекс получится

Kirill
10.11.2016
10:41:29
относительно чего ?

Dmitrii
10.11.2016
10:42:03
На вставку. Разве нет?

Kirill
10.11.2016
10:42:15
нет

Sergey
10.11.2016
10:48:11
Проблема этой таблицы, что в сутки в нее записыватеся примерно 500 000 записей, и она сильно разрастается, хочу перед тем как делать индекс, вынести и удалить старые данные из нее, или есть еще варианты? На партиции нет смысла бить в моем случае.

Kirill
10.11.2016
10:49:35
есть вариант не использовать для таких задач постгрес

Sergey
10.11.2016
10:51:01
Cassandra ?

Fike
10.11.2016
10:52:25

Kirill
10.11.2016
10:53:30
а, там же всего 500к в день

Evgeniy
10.11.2016
10:53:35
так тут проблема не сорт метода а то что планер ошибся и решил сделать abort early plan

Pavel
10.11.2016
10:54:02
eav
Смысла в таком вообще не вижу, это вообще какой-то антипаттерн :)

Google

Evgeniy
10.11.2016
10:54:17
чинится через analyze, random_page_cost, хинты и мат
проще всего чинится индексом от которого постгрес не может отказаться

Sergey
10.11.2016
10:54:39

Fike
10.11.2016
10:55:25

Sergey
10.11.2016
10:55:38

Pavel
10.11.2016
10:55:56

Fike
10.11.2016
10:56:10
ну это не совсем реляционка
ничего не могу сказать по поводу ограничений и производительности, не пользовался

Pavel
10.11.2016
10:56:28
Ну в только-реляционке то понятно что никак.

Fike
10.11.2016
10:57:10
но скорее всего с json будет быстрее (только json, на самом деле, эмуляция хранения произвольной структуры для бедных)

Kirill
10.11.2016
10:57:24
» и она сильно разрастается, хочу перед тем как делать индекс, вынести и удалить старые данные из нее, или есть еще варианты?
сделайте таблицу с нужным индексом и залейте в нее через insert into ... select from where ограничение отсекающие старые данные, потом переименуйте

Evgeniy
10.11.2016
11:01:20
хороший совет чтобы потерять инфлайт данные

Evgeniy
10.11.2016
11:02:06
https://github.com/reorg/pg_repack/pull/42
лучше так

Kirill
10.11.2016
11:03:20
я так понимаю там данные за короткий промежуток не слишком важны

Sergey
10.11.2016
11:03:41
Select делается за промежуток неделя не больше

Kirill
10.11.2016
11:06:02
тогда просто сделайте 2-е таблицы если данные нужно хранить, архив и актуальные, актуальные переодически подчищайте

Darafei
10.11.2016
11:06:13
эмм, а почему дата выбирается по to_char?

Google

Sergey
10.11.2016
11:06:47

Kirill
10.11.2016
11:07:51
если слева по функции то планировщик не может коректно оценить объем выборки и вбивает константу

Darafei
10.11.2016
11:07:52
ts between 'start_timestamp' and 'end_timestamp'
лучше - на таймзонах не так больно, и сравниваются циферки, а не строки

Stanislav
10.11.2016
11:08:48

Darafei
10.11.2016
11:09:28
какая разница какой бардак, пока работает

Stanislav
10.11.2016
11:10:37
Ну я так понимаю ЛПР, которое там разместило ответственные данные своим решением - тоже работает до первого факапа.

Admin
ERROR: S client not available

Kirill
10.11.2016
11:16:24
Весь enterprise собран из говна и палок - это догма, и все как-то, более-менее живет, только поддержки сложности

Аггей
10.11.2016
11:32:33

Stanislav
10.11.2016
11:33:23
В буклетах тоже много чего про волшебность облаков пишут.

Аггей
10.11.2016
11:34:35
Мы обсуждали не красоту архитектуры, не гениальность инженерной мысли, а вполне конкретный буклет

Evgeniy
10.11.2016
11:38:26
а что не так с вакансией?

Kirill
10.11.2016
11:50:03
не берут )

Darafei
10.11.2016
12:02:09
в смысле "не берут"?
о, там хорошее есть - Track record for quickly learning new technologies.

Kirill
10.11.2016
12:12:12

Darafei
10.11.2016
12:12:44
а, это бывает, да

Алексей
10.11.2016
12:31:37
коллеги кому интересно https://telegram.me/clickhouse_ru

Stanislav
10.11.2016
14:02:48

Kirill
10.11.2016
14:09:55

Google

Stanislav
10.11.2016
14:10:19
Соболезную им.

Alexandr
10.11.2016
14:11:54
особенно весело, когда такие отправляют письмо HRу с прямым текстом "Пошли вы на ***", а затем перезванивают, получили ли они письмо)

Stanislav
10.11.2016
14:12:15

Alexandr
10.11.2016
14:12:29
О_о

Darafei
10.11.2016
15:33:41
а это чисто российская фишка?
просто я у нас такой штуки не замечал

Аггей
10.11.2016
15:36:40
Вообще собеседования и найм на работу это боль и страдания. Недовольны обычно обе стороны ) Одни уже 50го собеседуют и всё не то, другие недовольны, что собеседуют их не те и не так.

Павел П.
10.11.2016
15:41:47
И денег мало плотют

Pavel
10.11.2016
15:43:34
Так это же очень субъективный процесс, когда я это понял то сразу стал спокойнее

Darafei
10.11.2016
15:43:34
пойти что ли пособеседоваться куда

Maxim
10.11.2016
17:14:42

Darafei
10.11.2016
17:18:21

Maxim
10.11.2016
17:18:36
рубизяним в основном
по домам сидим овер-зе-ворлд
постгрес - основная дб на всех проектах
делаем, например, Gett и куски ебея

Konstantin
10.11.2016
17:30:39
@pipopolam ты в марсианах теперь что ли?

Maxim
10.11.2016
17:30:47
ага