@pgsql

Страница 439 из 1062
Макс
23.08.2017
19:09:55
срм на колоночной бд. однако...
Ну, если хранить данные статистические, почему нет?

Bandikoot
23.08.2017
19:10:07
Алексей
23.08.2017
19:10:32
да да. я понимаю. поэтому и предлагаю ассемблер. уж если городить то сразу везде.

Макс
23.08.2017
19:10:48
А в 2007 еще црм новые начинаюи?
Ну, маленькие организации не начинают, очевидно :)

Google
Сергей
23.08.2017
19:10:52
Сразу оптимально чтобы

Макс
23.08.2017
19:13:03
А если у организации есть всякая сложная специфика с производством под конкретный запрос. То почему бы не сделать свой идеальный велосипед? ;)

Макс
23.08.2017
19:16:05
Тем более, что сдвиг платформы. 1С надоела, Web и мобилки - модно. Что тут думать. Надо делать )

Надо брать ОроПлатформ )

Evgeniy
23.08.2017
19:22:20
Всем привет. Ребят, столкнулся с такой ошибкой. Exception 'yii\db\Exception' with message 'SQLSTATE[08006] [7] fe_sendauth: no password supplied' Гугл ничего не говорит((

Ilya
23.08.2017
19:25:46
только сегодня и только для вас. друг просил помочь. вкладка в браузере была открыта

Ilya
23.08.2017
19:26:34
08006 connection_failure

Evgeniy
23.08.2017
19:27:37
08006 connection_failure
ну это что-то типа ошибка соединения?

Google
Ilya
23.08.2017
19:27:45
у нас было другое приключение. как этот SQLSTATE смотреть в libpq в Сях

Evgeniy
23.08.2017
19:28:16
Ilya
23.08.2017
19:29:04
хз. я не пользуюсь обертками фреймворков. либо редко.

это коннект. либо порт не тот. либо еще что

Evgeniy
23.08.2017
19:29:26
Arthur
23.08.2017
19:32:38
Всем привет. Ребят, столкнулся с такой ошибкой. Exception 'yii\db\Exception' with message 'SQLSTATE[08006] [7] fe_sendauth: no password supplied' Гугл ничего не говорит((
Сервер ожидает пароля при подключении, но пароль не был предоставлен. Надо настраивать pg_hba.conf, если пароль не нужно передавать

Ilya
23.08.2017
19:34:10
не факт. это именно коннект. иначе бы вылезла ошибка по авторизации. в перечне есть

хотя мой ругаицо. клиенд

Arthur
23.08.2017
19:37:30
смотря, что вам нужно, если пароль не нужен, то в pg_hba.conf нужно указать строку типа: # IPv4 local connections: host all all 0.0.0.0/0 trust

Ilya
23.08.2017
19:37:51
дадада и порт наружу и нам всем сказать

Fike
23.08.2017
20:40:23
Aleksander
23.08.2017
20:42:08
не первый год уже как нет
Тогда я не в курсе, чем достигается атомарность? Copy on write?

изучу этот вопрос

Fike
23.08.2017
20:44:07
Да черт его знает, просто пинать ее за collection-level lock было модно черт знает в каком году. "For most read and write operations, WiredTiger uses optimistic concurrency control. WiredTiger uses only intent locks at the global, database and collection levels. When the storage engine detects conflicts between two operations, one will incur a write conflict causing MongoDB to transparently retry that operation." - видимо оно, https://docs.mongodb.com/manual/faq/concurrency/

(чуть выше на той же странице пишется, что wired tiger использует document-level lock)

Pavel
23.08.2017
20:46:03
А где он быстрый?

Google
Aleksander
23.08.2017
20:46:25
В пг быстрее

Намного

делал лимит оффсет с записи номер 24 050 000 по запись с 24 051 000 - около 10 минут

если не больше

тоже самое в пг - это секунды

Pavel
23.08.2017
20:49:07
А длина строки в пг какая в таблице была?

Выглядит космически как-то

Fike
23.08.2017
20:49:25
не то чтобы я защищаю монгу, но где вы собрались получать двадцатичетырехтысячную страницу?

Pavel
23.08.2017
20:50:37
24 050 000 — он же прошерстит все эти строки, пока дойдёт до нужной

Fike
23.08.2017
20:50:51
да, а где это реально применять вообще?

Aleksander
23.08.2017
20:50:58
А длина строки в пг какая в таблице была?
Не считал длинну строки. Но могу сказать, что структура данных была аналогична монговскому документу. Десять полей int64, два поля TEXT, примерно по 20 символов.

Fike
23.08.2017
20:51:15
у вас есть пользователи, которые прочитали предыдущие двадцать четыре тысячи страниц?

Pavel
23.08.2017
20:51:20
да, а где это реально применять вообще?
хз, мне просто любопытны результаты работы limit offset

Aleksander
23.08.2017
20:52:40
да, а где это реально применять вообще?
Применение у нас это список с паджинацией. Но реально никто до той страницы не доходит. Пришлось применить такой лимит оффсет, когда мигрировал с монги на пг

Не знаю, как в пг реализованно, может он хранит данные пачками, и высчитывает номер пачки и уже от нее считает лимит оффсет

а не шерстит все записи

Я, конечно, не разработчик баз данных, но, наверное делал бы как-то так

Pavel
23.08.2017
20:56:00
120 байт на строку без учёта оверхеда, т.е. примерно по 65 записей на страницу, т.е. hit'ов было примерно ~370000

Ну в целом не очень долго должно было быть, да, если на SSD крутилось всё

Aleksander
23.08.2017
20:56:36
не hdd

Google
Pavel
23.08.2017
20:56:39
а не шерстит все записи
Не, он шерстит, к сожалению :/

Aleksander
23.08.2017
20:57:48
где-то видел статью, вроде на хабре - в аннотации было написано, что-то вроде пг космос, у него быстрый лимит оффсет и какие-то замеры далее

надо найти

Ildar
23.08.2017
21:34:30
По идее если есть индекс + сортировка, то можно было бы использовать индекс для выбора страниц (bitmap scan), чтобы не шерстить весь хип. Не знаю, есть ли такое в пг. Можно попробовать

*Даже не bitmap, а обычный индекс скан

Pavel
23.08.2017
21:43:03
Да можно в принципе, да. Неприятности начинаются при фильтрации какой-нибудь.

Admin
ERROR: S client not available

Ildar
23.08.2017
21:54:42
пожалуй да. Но если использовать покрывающий индекс из pgpro, то это тоже можно обойти (правда ценой пожирневшего индекса)

Darafei
23.08.2017
22:00:28
кстати, а чем глобально покрывающий индекс из pgpro отличается от составного индекса по тем же полям?

Ildar
23.08.2017
22:16:05
я не знаю наверняка, как он устроен (@alubennikova_pgpro возможно поделится мудростью), но я так понимаю, что он должен быть компактнее, т.к. неключевые поля хранятся в листьях, эти поля не участвуют в поиске ключа (меньше операций сравнения), а также не мешают сделать unique констрейнт

Anufant
24.08.2017
07:01:10
Привет. Подскажите, есть таблица-лог, в ней есть поля условно object_type, object_id,create_time. Таблица довольно большая, пара сотен миллионов записей. За месяц примерно 5 млн. Хочется быстро выбирать из таблицы записи определенного типа и с определенными object_id за, допустим, месяц. На таблице уже есть индекс по create_time Но он работает не очень быстро. Важно, что примерно 90% записей имеют type = 'type1', который меня не сильно интересует. Я создал индекс по ( object_type, create_time ) where object_type <> 'type1'. Пытаюсь сделать запрос по object_type и create_time, но в плане все равно используется медленный индекс только по create_time. Если удалить индекс по create_time, то запрос идёт по нужному мне индексу и гораздо быстрее. Вопрос: почему так и можно ли на это повлиять как-то?

Ilya
24.08.2017
08:04:47
Партиционирование?
Плюсану. Автоматическое, по дате. И хранимки для извлечения.

Anufant
24.08.2017
08:47:19
analyze таблице делали? :)
Вроде делал, но не спасло :(

Ilya
24.08.2017
09:02:17
ну вот если оно внего полезет то сначала будет перебирать адову тучу данных одного типа а потом уже выбирать время.

причем в поиск загребется и то где время не нужное.

индекс по типу в таких случаях не имеет смысла

Google
Ilya
24.08.2017
09:03:45
один хрен ты тащиш временными интервалами и уже из ограниенного набора выгребаешь данные нужного типа. так быстрее

за тебя постгрес и решил как ему быстрее. правильно решил

а индекс тип-время можешь дропнуть. только табличку замедляешь

Darafei
24.08.2017
09:05:03
индекс время-тип пробовали? :)

Ilya
24.08.2017
09:07:13
а зачем?

у тебя вторая половина его не будет работать

Anton [Mgn, az09@osm]
24.08.2017
09:07:30
ну вот если оно внего полезет то сначала будет перебирать адову тучу данных одного типа а потом уже выбирать время.
Поэтому партиционировать надо по типу объекта, что б в тип1 вообще (почти) не соваться. И положить эту партицию на хдд, а которая не тип1 на ссд. И ваши волосы будут шелковистыми

Ilya
24.08.2017
09:07:50
в случае лога нао по времени партицировать )

он один хрен будет интервалами тащить )

Anton [Mgn, az09@osm]
24.08.2017
09:09:59
Короче вариантов развития событий несколько и без стакана^wдеталей не разберёшься )

Ildar
24.08.2017
09:10:18
в случае лога нао по времени партицировать )
на первом уровне по времени, на втором - по типу )

Ilya
24.08.2017
09:11:32
на первом уровне по времени, на втором - по типу )
ну это зависит от того как и что аффтару надо извлекать

Ildar
24.08.2017
09:12:51
ну поскольку у аффтара это лог, то время скорее всего будет присутствовать в запросе почти всегда

Ilya
24.08.2017
09:13:59
ну вот и я про то. у него появляется ограничение выборки

https://www.postgresql.org/docs/9.6/static/row-estimation-examples.html

чо там мануал говорит

selectivity = (1 + (1000 - bucket[2].min)/(bucket[2].max - bucket[2].min))/num_buckets = (1 + (1000 - 993)/(1997 - 993))/10 = 0.100697

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