@pgsql

Страница 407 из 1062
Igor
17.07.2017
12:03:48
это еще про UUID не вспомнили (36 человекопонятных символов vs 16 байт)

Артур
17.07.2017
12:03:55
котики, не ссорьтесь >^..^<
надо в правила записать "не спрашивать у спецов по БД, что лучше Int, timestamp или datetime"

Darafei
17.07.2017
12:04:27
а так, если экономить место - иногда вдруг оказывается, что null-terminated текст занимает меньше, чем int, например

Артур
17.07.2017
12:20:19
https://habrahabr.ru/company/mailru/blog/242645/ Интересная статейка.

Google
Старый
17.07.2017
12:30:36
и дальше чего
https://github.com/postgrespro/pg_oltp_bench.git видал такое

Артур
17.07.2017
12:50:45


Или прямо писать тип timestamptz

Lev
17.07.2017
12:51:23
прямо писать тип

Артур
17.07.2017
12:52:15
только теперь без нуля

Darafei
17.07.2017
12:53:45
можно прямо timestamptz

Артур
17.07.2017
12:54:08




Корче, он всеравно превращается в timestamp

Darafei
17.07.2017
13:01:39
ну да

как и float становится double precision

Ascandar
17.07.2017
13:11:37
никто не в курсе, не запихнули ли яндексовые патчи в офф барман?

Ketzal
17.07.2017
13:14:08
в курсе, нет, не запихнули (

Google
Артур
17.07.2017
13:38:12
как и float становится double precision
так он будет хранить временную зону?

точнее как он буджет хранить данные?

В 0 зоне?

? я хочу просто чтобы дата помнилась правильно в луюбом случае

Darafei
17.07.2017
13:40:05
он не хранит таймзону, но выводит и вводит её

Артур
17.07.2017
13:44:47
он не хранит таймзону, но выводит и вводит её
а в какой тамзоне хранится дата?

я понимаю что не хранит

вот, например если будет декретное время (это когда + или - 1 час), тогда как быть?

хотя чего допустим. сейчас сменю время.



Darafei
17.07.2017
13:49:14
хотя чего допустим. сейчас сменю время.
https://github.com/postgres/postgres/blob/c7b8998ebbf310a156aa38022555a24d98fdbfb4/src/interfaces/ecpg/pgtypeslib/timestamp.c#L34

Fike
17.07.2017
13:50:42
Таймстамп сам по себе не может иметь таймзоны, насколько понимаю, он просто может быть сконвертирован в/из даты с таймзоной, а сама необходимость в ПГ происходит из того, что ему заранее надо знать, может ли быть таймзона в том, что надо будет парсить.

Fike
17.07.2017
13:58:21
Так, я по диагонали прочитал доку, и это не очень ок. Постгре действительно нужно знать, что он читает timestamp with tz, чтобы правильно распарсить, но сам тип описан в стандарте SQL, и я беглым поиском не нашел, что это такое. Тем не менее, по доке постгре он хранится ровно так же, и никакого реального смысла в таймзоне для таймстампа я не вижу.

Артур
17.07.2017
13:59:44
ситуация следующая: я в поле __md по дефолту пишу now() Дефолт выдает текущее время в зоне +3 (то есть 16:58) Меняю часовой пояс (на +4), перезапускаю сервер, всеравно выводит 16:58)

Google
Артур
17.07.2017
14:01:14
Либо он помнит это в UTC и принимает в UTC и когда я отправил +3 он посчитал это как UTC, либо что-то неправильно работает

Postgres если конкретно

меняю часовой пояс на локальной машине (там же Postgres развернут)

Айтуар
17.07.2017
14:02:33
меняю часовой пояс на локальной машине (там же Postgres развернут)
насколько я знаю нужно менять в конфиге потгрес

Артур
17.07.2017
14:03:46
жаль. я хочу хранить и выврдить всегда при любом дампе, на любом червере, при любой ситуации по дефолту UTC

И не париться на счет часового пояса. На бэкенде я уж как нибудь сам отрегулирую вывод информации.

а если при каждом удобном случае надо будет костыли городить и придумывать как выести "честное" время, то для меня (вохможно из-за моего непонимания) timestamp пока что сомнителная радость. И уж лучше тогда UNIXTIME в BIGINT

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

Артур
17.07.2017
14:13:51
set timezone = 'UTC'
блин. А дело ведь говоишь )

Alexander
17.07.2017
15:00:17
Ребята, есть вопрос. Если индексный файл весит 17 Гб при весе таблицы в 10 Гб — это ведь не очень ок, правда?

Darafei
17.07.2017
15:00:38
смотря что ты там наиндексировал

а почему файл, что \di+ показывает?

Alexander
17.07.2017
15:03:59
а почему файл, что \di+ показывает?
Это нужно выполнить в psql?

Igor
17.07.2017
15:08:40
да

Alexander
17.07.2017
15:14:00
Ей ведь нужно скормить имя индекса?

Впрочем, с именем таблицы она тоже говорит, что нет подходящих отношений

Darafei
17.07.2017
15:21:00
ей ничего не нужно кормить

Google
Darafei
17.07.2017
15:21:04
она самостоятельная

Admin
ERROR: S client not available

Alexander
17.07.2017
15:30:19
Все, разобрался. Нужно было явно подключится к нужной БД. Показывает, что есть 4 индекса в среднем по 4 Гб, сама таблица (по dt+) весит 9664 MB

В таблице больше 70 млн строк, кстати.

Один индекс для первичного ключа, который создается сам. Еще один уникальный составной: (col1, col2). Есть еще два отдельных для col1 и col2. Собственно, отсюда вопрос: можно ли выпилить отдельный индекс для col1, если он используется в составном индексе на первом месте?

Alexander
17.07.2017
15:39:59
Только что загуглил, что да. Спасибо!

Pavel
17.07.2017
15:48:20
Индекс нужен для ускорения работы sql запросов?

Fike
17.07.2017
15:51:24
Если грубо, то да. В индесе хранится информация, что запись, соответствующая этому условию, лежит там-то, что позволяет прочитать сначала индекс, потом конкретные записи вместо полного скана таблицы.

Roman
18.07.2017
08:10:20
Привет. У меня есть таблица, в которой каждое поле я заполняю селектом. Получается куча селектов, которые по своей сути одинаковые, меняются названое столбца. Как можно оптимизировать код?

Max
18.07.2017
08:15:53
Логично предположить, что данные для одной строки, выбираемые разными селектами как-то связаны? Выбирать значения для всех полей сразу одним запросом. Или я что-то не понял

Lev
18.07.2017
08:23:00
Возможно проблемы в схеме. Скорее всего столбцы должны быть строками. Но описание слишком общё. Из него ничего не понятно.

Roman
18.07.2017
10:33:53
Одним запросом не могу. Там происходит удаление дубликатов, группировка и все такое. Смысл в том, что мне нужно создать изменяемый подзапрос. Чтобы в подзапросе был не селект, что-то типо функции c параметрами, по которым он будет группировать

Darafei
18.07.2017
10:51:49
схему данных рисовали в экселе? :)

сделай из своей кучи колонок колонку "название_колонки", положи в неё название колонки, и обращайся к ней как к данным

а потом, если нужно на это смотреть как на кросстаб, пользуйся \crosstabview

Alex
18.07.2017
11:55:11
друзья помогите разобраться что я делаю неправильно: archive_command = mkdir -p ../wal_archive && test ! -f ../wal_archive/%f && cp %p ../wal_archive/%f при запуске базы должна создаться папка wal_archive и логи должны записываться туда я правильно понимаю ? test ! -f ../wal_archive/%f не понятно какую функцию выполняет эта строка

прпи запуске папка wal_archive не создается

Andrey
18.07.2017
11:58:03
А зачем вы создание директории в archive_command запихнули?

Alex
18.07.2017
12:00:21
просто взял с шаблона конфига кластера гитлаб parameters: archive_mode: "on" wal_level: hot_standby archive_command: mkdir -p ../wal_archive && test ! -f ../wal_archive/%f && cp %p ../wal_archive/%f если создать папку рукой то нужно только test ! -f ../wal_archive/%f && cp %p ../wal_archive/%f прописать да ?

Google
Arthur
18.07.2017
12:03:20
> test ! -f ../wal_archive/%f не понятно какую функцию выполняет эта строка команда выполняет проверку существования wal файла, если файл есть, то в логах появятся WARNING сообщения и файл не будет скопирован в папку wal_archive

Alex
18.07.2017
12:04:23
понятно спасибо

Roman
18.07.2017
13:51:15
к примеру есть таблица с двумя столбцами: a и b. как вывести самое частое значение в них одним запросом?

Darafei
18.07.2017
13:52:44
select mode(a), mode(b) from table;

عاصم بن حارث
18.07.2017
13:53:03
?

Darafei
18.07.2017
13:54:10
точнее SELECT mode() WITHIN GROUP (ORDER BY a) AS mode_a, mode() WITHIN GROUP (ORDER BY b) AS mode_b FROM tbl;

но суть та же

عاصم بن حارث
18.07.2017
13:54:31
o! ?

terry
18.07.2017
14:03:42
Вот это то, чего не хватало — интерфейс Постгри с автодополнением и подсветкой синтаксиса pgcli.com

Roman
18.07.2017
14:12:15
точнее SELECT mode() WITHIN GROUP (ORDER BY a) AS mode_a, mode() WITHIN GROUP (ORDER BY b) AS mode_b FROM tbl;
Спасибо большое. А с группировкой будет работать? То есть если добавит id, например пользователя и вывести популярные значения для каждого пользователя ?

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