@pgsql

Страница 108 из 1062
Dmitry
05.10.2016
15:47:09
тоесть сортировка будет делаться не на основе конкретной системной локали, а на основе http://site.icu-project.org/

Vadim
05.10.2016
15:50:15
а регистронезависимую кодировку кто-нибудь когда-нибудь сделает?

Anton
06.10.2016
07:03:38
Скажите, в каких случаях нужен кластеризованный индекс (командой CLUSTER) ? Спросили в коментах, а я даже не знаю что ответить толком ( https://habrahabr.ru/post/311586/#comment_9840738 ). Не видел вообще, чтобы кто-то его юзал в pg. При этом в mysql, насколько я знаю, данные кластеризуются автоматически.

Google
Vadim
06.10.2016
07:20:33
Кластерный индекс используется в основном по статичным данным. То есть, когда вставка в таблицу минимальна, либо ее вообще нет. Кластерный индекс, например, можно использовать для партиционированных таблиц, либо таблиц с геоданными

Anton
06.10.2016
07:28:42
Понял, спасибо

Айтуар
06.10.2016
07:35:56
Здравствуйте. Таблица партиционирована. Ресторю данные в родительскую таблицу, она растёт нормально, но почему растёт в размерах дочерняя таблица? При этом кол-во строк в дочерней не изменяется, делал по ней full vacuuum analyze, не помогло.

Vadim
06.10.2016
07:36:04
чтения данных в БД поболее чем записи чаще всего, вот в mssql например не советуют никогда использовать heap. если точно не знаешь, почему не подходит кластер

Dmitry
06.10.2016
08:19:53
Скажите, в каких случаях нужен кластеризованный индекс (командой CLUSTER) ? Спросили в коментах, а я даже не знаю что ответить толком ( https://habrahabr.ru/post/311586/#comment_9840738 ). Не видел вообще, чтобы кто-то его юзал в pg. При этом в mysql, насколько я знаю, данные кластеризуются автоматически.
Нарисую пример при котором важен кластерный индекс: допустим у вас таблица Users, в нем есть поле LastLoginDate. Пользователей у которых LastLoginDate меньше месяца назад — всего 10%, поэтому они разбросаны по таблице. но ДБ не загружает конкретные строки, она загружает данные блоками, тоесть вам понадобилась одна строчка из блока — а загрузиться весь блок, и в нем 90% не нужных вам пользователей. При помощи кластера вы можете отстортировать таких пользователей по LastLoginDate и тогда ДБ будет работать эффективнее.

Vadim
06.10.2016
08:26:18
какую ФС и размер блока под постгрес лучше делать?

ext4 ,512байт?

Phil
06.10.2016
08:26:57
волум zfs, 8k

или xfs такой же

Roman
06.10.2016
08:27:37
Phil
06.10.2016
08:28:02
почему 4?

Google
Phil
06.10.2016
08:29:07
xfs один хрен лежит поверх zfs с 8к )))))))

Vadim
06.10.2016
08:29:12
Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes

а физический сектор 512байт, а логический тогда 4к или 8к стоит?

Roman
06.10.2016
08:30:52
почему 4?
Ты попробуй смонтировать xfs с блоком в 8к

Phil
06.10.2016
08:32:12
Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes
да нету ни у кого уже 512 физики. а еще скорее всего ты не поверх физиики это все делаешь

Vadim
06.10.2016
08:34:22
так страницу лучше 8к или 4к, допустим на ext4

Alexey
06.10.2016
08:34:33
Скажите, а кто ни то переносил бд с mysql на postgresql? Есть ли проверенный способ?

Darafei
06.10.2016
08:35:40
тебе после БД переносить запросы и разработчиков, это обычно больнее

Dmitry
06.10.2016
08:36:50
в смысле +1 !

Mike Chuguniy
06.10.2016
08:38:34
Скажите, а кто ни то переносил бд с mysql на postgresql? Есть ли проверенный способ?
Ручками - единственный проверенный способ. Ну а про разрабов и запросы уже сказали. Правда запросы - это сильно зависит от проекта. А вот разрабы...

Vadim
06.10.2016
08:44:10
какие параметры монтирование лучше использовать под субд?

ros
06.10.2016
08:49:08
noatime точно

Roman
06.10.2016
08:52:23
nobarrier жи

ros
06.10.2016
08:55:45
ext3/ext4 c data=writeback за остальные не скажу

Борис
06.10.2016
09:28:34
noatime точно
Только на SSD имхо.

Pavel
06.10.2016
09:28:36
хм,а разве автовакум сам не должен все чистить?

или все таки надо руками гонять vacuum ?

Grigory
06.10.2016
09:29:11
ext3/ext4 c data=writeback за остальные не скажу
только если внизу RAID с BBU

Google
Борис
06.10.2016
09:32:47
nobarrier жи
Если батарейка в рейде?

Alexandre
06.10.2016
09:32:51
Доброе утро всем, уже даже день

вопрос такой, в каком формате лучше всего хранить деньги

ros
06.10.2016
09:33:14
Только на SSD имхо.
оно тоже зазря головы гоняет

Alexandre
06.10.2016
09:33:23
есть формат Money

или Float

Darafei
06.10.2016
09:34:03
или Float
деньги нельзя хранить во Float

Alexandre
06.10.2016
09:34:04
нужно хранить рубли и копейки, суммы не большие, до 500 руб

по этому и спрашиваю, в каком формате их лучше хранить

Darafei
06.10.2016
09:34:54
потому что ты не хочешь потом посчитать кому-то чек на 16.1666666666666 рублей

Ildar
06.10.2016
09:34:56
потому что ошибки округления

Alexandre
06.10.2016
09:35:28
Money &

Sergey
06.10.2016
09:35:31
noatime точно
Давно уже relatime есть

Darafei
06.10.2016
09:35:47
почему?
или хуже того, чтобы сумма позиций в чеке не сошлась с ИТОГО на пару копеек после персональной скидки в 1.8%

Fike
06.10.2016
09:36:33
Там (например, ситуаций может быть куда больше) рано или поздно может случится момент, что у тебя разработчик проводит валидацию как (сумма позиций) == (итог выставленного счета). А оно не бьется из-за округления float.

Alexandre
06.10.2016
09:36:46
Decimal(8,2) ?

когда я разрабатывал на мускуле - мы хранили все в инт * 100

Sergey
06.10.2016
09:38:40
Давно уже relatime есть
Более того, по умолчанию

Fike
06.10.2016
09:38:41
децимал должен работать

Google
Alexandre
06.10.2016
09:38:46
но, так мне больше делать не хочется

Michael
06.10.2016
09:38:58
Мы обычно имеем 2 поля: для хранения числа без округления, и для хранения числа с "банковским округлением"

Alexandre
06.10.2016
09:39:39
какой тип

Vadim
06.10.2016
09:40:03
Numeric

не в коем случае не double precision

Michael
06.10.2016
09:41:04
double precision aka float8

в постгресе

Fike
06.10.2016
09:41:51
double precision aka float8
тот же флоат с теми же проблемами, но с большим разрешением

Admin
ERROR: S client not available

Vadim
06.10.2016
09:41:57
Типы данных real и double precision хранят приближённые числовые значения с переменной точностью. На практике эти типы обычно реализуют Стандарт IEEE 754 для двоичной арифметики с плавающей точкой (с одинарной и двойной точностью соответственно), в той мере, в какой его поддерживают процессор, операционная система и компилятор. Неточность здесь выражается в том, что некоторые значения, которые нельзя преобразовать во внутренний формат, сохраняются приближённо, так что полученное значение может несколько отличаться от записанного. Управление подобными ошибками и их распространение в процессе вычислений является предметом изучения целого раздела математики и компьютерной науки, и здесь не рассматривается. Мы отметим только следующее: Если вам нужна точность при хранении и вычислениях (например, для денежных сумм), используйте вместо этого тип numeric. Если вы хотите выполнять с этими типами сложные вычисления, имеющие большую важность, тщательно изучите реализацию операций в вашей среде и особенно поведение в крайних случаях (бесконечность, антипереполнение). Проверка равенства двух чисел с плавающей точкой может не всегда давать ожидаемый результат.

Евгений
06.10.2016
09:42:01
decimal c 5 знаками

2 показыаете, еще 3 для точности внутренних расчетов

Vadim
06.10.2016
09:43:39
decimal = numeric в postgresql. Можно использовать что больше нравится

Alexandre
06.10.2016
09:43:45
NUMERIC( 8, 3) как-то так?

Vadim
06.10.2016
09:43:50
да

Евгений
06.10.2016
09:43:54
МТС когда-то считал с 4 знаками после запятой

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

Alexandre
06.10.2016
09:44:25
MTC использует Постгрес?

Евгений
06.10.2016
09:44:56
дело не в базе, дело в способе хранения )

Alexandre
06.10.2016
09:45:11
ясно, спасибо за консультацию

Google
Dan
06.10.2016
09:45:49
МТС когда-то считал с 4 знаками после запятой
В это сложно поверить, но у них до сих пор внутренние расчеты с 4 знаками после запятой

Alexandre
06.10.2016
09:46:33
думаю, это правильно :)

Darafei
06.10.2016
09:46:36
у нас в Беларуси деноминация недавно была

Alexandre
06.10.2016
09:46:56
ну и ??

Roman
06.10.2016
09:47:13
MTC использует Постгрес?
Мтс использует оракл. Но инфо о балансе там всё-таки в float хранят :(

Darafei
06.10.2016
09:47:29
в лучших имплементациях людям понадобилось поменять просто функции отображения для чисел

Michael
06.10.2016
09:48:50
Типы данных real и double precision хранят приближённые числовые значения с переменной точностью. На практике эти типы обычно реализуют Стандарт IEEE 754 для двоичной арифметики с плавающей точкой (с одинарной и двойной точностью соответственно), в той мере, в какой его поддерживают процессор, операционная система и компилятор. Неточность здесь выражается в том, что некоторые значения, которые нельзя преобразовать во внутренний формат, сохраняются приближённо, так что полученное значение может несколько отличаться от записанного. Управление подобными ошибками и их распространение в процессе вычислений является предметом изучения целого раздела математики и компьютерной науки, и здесь не рассматривается. Мы отметим только следующее: Если вам нужна точность при хранении и вычислениях (например, для денежных сумм), используйте вместо этого тип numeric. Если вы хотите выполнять с этими типами сложные вычисления, имеющие большую важность, тщательно изучите реализацию операций в вашей среде и особенно поведение в крайних случаях (бесконечность, антипереполнение). Проверка равенства двух чисел с плавающей точкой может не всегда давать ожидаемый результат.
Спасибо. Перечитал https://postgrespro.ru/docs/postgrespro/9.5/datatype-numeric Мы в постгресе юзаем до сих пор флоат, по старинке. Траблов пока нет. НО, наверное, лучше делать так как пишет Постгрес

Sergey
06.10.2016
09:49:54
Мтс использует оракл. Но инфо о балансе там всё-таки в float хранят :(
Вот, кстати, где-то видел у себя баланс во float в интерфейсе. Но было лишь однажды.

Alexandre
06.10.2016
09:58:15
спасибо всем

Stanislav
06.10.2016
10:17:24
Вырубайте в BIOS технологию EIST с Agressive Power Management настройками! Постгри оказалась ОЧЕНЬ чувствительна к этим не в меру умным технологиям Интела. Нам удалось убрать постоянные массовые затупы базы. Проблема исходила из того, что Selectel анально огораживается паролем на BIOS серверов от клиентов с шаловливыми ручками, нам понадобилось потратить дополнительные силы на то, чтобы убедить их разрешить нам покрутить BIOS.

Ну и до кучи, довольно полезная публикация http://en.community.dell.com/techcenter/high-performance-computing/b/general_hpc/archive/2014/09/23/bios-tuning-for-hpc-on-13th-generation-haswell-servers При Cluster on Die в двух сокетах появляется 4 NUMA nodes

Alex
06.10.2016
11:45:19
Извечный вопрос о бекапах, тут заметил что у одних товарищей "неконсистентный" бекап, после после разворачивания требуется некоторое время на рекавери, и у них нет WAL архива. Именно отсутствие вал-архива приводит к подобным эффектам ? или я что-то не правильно понимаю ?

Dmitry
06.10.2016
11:56:36
есть бакап полученный через копию файлов (rsync+pg_{start,stop}_backup() или pg_basebackup и все что на этом основанно) + wal и есть дамп, который представляет из себя plain sql, снапшот состояния системы. вот с wal с дампом не скрестить, никак, поэтому востановиться можно только на снапшот, это займет CPU, например создание индекс - однопоточно и после этого нужно будет выполнить vacuum analyze, чтобы собрать статистику бакап + wal лишен таких недостатков, но соот-венно при востановлении приходиться ждать, пока проиграются все изменения записанные в журнал (представьте что вы обновили 100500 раз одну и туже строчку)

Stanislav
06.10.2016
11:59:39
Дим, вопрос о другом - если WAL вообще нет, и его с pg_basebackup копии поднимают - он будет консистентен или нет?

Sergey
06.10.2016
12:00:48
конечно консистентен, иначе какой это бекап?

Dmitry
06.10.2016
12:00:53
да, до момента последнего зафиксированного чекпоинта :)

Stanislav
06.10.2016
12:01:33
конечно консистентен, иначе какой это бекап?
Там есть некоторые проблемы, хочется услышать сильных утверждений от более начитанных ребят

Dmitry
06.10.2016
12:01:39
конечно консистентен, иначе какой это бекап?
pg_basebackup - означает "базовый", "начальный" бакап :)

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