Size: a a a

pgsql – PostgreSQL

2020 July 29

M

Matthew in pgsql – PostgreSQL
Александр Тарасов
Всем привет! Поделитесь опытом, как у вас устроен горячий поиск по сотрудникам, кейс следующий:
кто-то хочет найти кого-то, пишет в запросе "Иван", а далее хочет увидеть сначала найденных Ивановых, потом Иванов, и только потом Ивановичей, и это при том что алфавитную сортировку по найденному хотят?
Писать 3 запроса, каждый со своей сортировкой и объединять это?
проще наверно три запроса
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Александр Тарасов
Всем привет! Поделитесь опытом, как у вас устроен горячий поиск по сотрудникам, кейс следующий:
кто-то хочет найти кого-то, пишет в запросе "Иван", а далее хочет увидеть сначала найденных Ивановых, потом Иванов, и только потом Ивановичей, и это при том что алфавитную сортировку по найденному хотят?
Писать 3 запроса, каждый со своей сортировкой и объединять это?
Хмм... а почему просто не попробовать отсортировать так, как нужно, для начала?
И да, это FTS, или LIKE, или regexp?
источник

АТ

Александр Тарасов... in pgsql – PostgreSQL
пока что LIKE, над FTS (мое упущение) пока не думал
источник

SB

Sergey Bezrukov in pgsql – PostgreSQL
Вообще говоря, требования сортировки по релевантности и по алфавиту слегка противоречат друг другу, когда они появляются одновременно, то действительно хоть 3 запроса делай )
источник

AP

Anton Patsev in pgsql – PostgreSQL
Matthew
сделал EXPLAIN ANALYZE, https://explain.depesz.com/s/t4yD
Вот конфигуратор получше обычного pgtune http://pgconfigurator.cybertec.at/
источник

АТ

Александр Тарасов... in pgsql – PostgreSQL
Yaroslav Schekin
Хмм... а почему просто не попробовать отсортировать так, как нужно, для начала?
И да, это FTS, или LIKE, или regexp?
Не совсем понял
источник

YS

Yaroslav Schekin in pgsql – PostgreSQL
Александр Тарасов
Не совсем понял
Я что-то такое имел в виду:
CREATE TABLE employee (
id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
surname text NOT NULL,
first_name text NOT NULL,
patronymic text NOT NULL
);

INSERT INTO employee(surname, first_name, patronymic)
VALUES
('Петров', 'Алексей', 'Николаевич'),
('Иванова', 'Мария', 'Сергеевна'),
('Тарасов', 'Иван', 'Петрович'),
('Барто', 'Илья', 'Иванович'),
('Барто', 'Мария', 'Ивановна'),
('Иванов', 'Иван', 'Иванович');

PREPARE foo(text) AS
SELECT *
 FROM (
      SELECT e.id, e.surname, e.first_name, e.patronymic,
             e.surname LIKE $1 AS s_matched, e.first_name LIKE $1 AS f_matched, patronymic LIKE $1 AS p_matched
        FROM employee AS e
      ) AS nested_query
WHERE s_matched OR f_matched OR p_matched
ORDER BY NOT s_matched, NOT f_matched, NOT p_matched, surname, first_name, patronymic;

EXECUTE foo('Иван%');
источник

A

Alexander in pgsql – PostgreSQL
PostgreSQL 13 New Features With Examples
источник

A

Alexander in pgsql – PostgreSQL
Прикрепите, пожалуйста, документ PostgreSQL 13 New Features With Examples, будет многим полезен.
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
ПГ 13. Несовместимости с более ранними версиями: https://www.percona.com/blog/2020/07/28/migrating-to-postgresql-version-13-incompatibilities-you-should-be-aware-of/
источник

МШ

Михаил Шурутов... in pgsql – PostgreSQL
Некоторые вещи весьма стоит иметь в виду, например, разработчикам.
источник

A

Alexander in pgsql – PostgreSQL
Спасибо, посмотрю.
источник

АТ

Александр Тарасов... in pgsql – PostgreSQL
Yaroslav Schekin
Я что-то такое имел в виду:
CREATE TABLE employee (
id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
surname text NOT NULL,
first_name text NOT NULL,
patronymic text NOT NULL
);

INSERT INTO employee(surname, first_name, patronymic)
VALUES
('Петров', 'Алексей', 'Николаевич'),
('Иванова', 'Мария', 'Сергеевна'),
('Тарасов', 'Иван', 'Петрович'),
('Барто', 'Илья', 'Иванович'),
('Барто', 'Мария', 'Ивановна'),
('Иванов', 'Иван', 'Иванович');

PREPARE foo(text) AS
SELECT *
 FROM (
      SELECT e.id, e.surname, e.first_name, e.patronymic,
             e.surname LIKE $1 AS s_matched, e.first_name LIKE $1 AS f_matched, patronymic LIKE $1 AS p_matched
        FROM employee AS e
      ) AS nested_query
WHERE s_matched OR f_matched OR p_matched
ORDER BY NOT s_matched, NOT f_matched, NOT p_matched, surname, first_name, patronymic;

EXECUTE foo('Иван%');
Большое спасибо, пойду тестить)
источник

E

Edya in pgsql – PostgreSQL
Коллеги, добрый вечер!

Есть задача "реплейтить" запросы из логов на другой инстанс.
Кто-нибудь такое делал? Проблема с copy как-то решается?

Реплей всего, кроме селектов. Чтобы в почти реалтайме иметь две одинаковые базы.
источник

DG

Denis Girko ☕️ in pgsql – PostgreSQL
Разве вы не репликацию сейчас описали?
источник

DG

Denis Girko ☕️ in pgsql – PostgreSQL
источник

A

A.L.F in pgsql – PostgreSQL
Доброго времени суток. Как настроить ldap аутэнтификацию с использованием ad. Нужен синтаксис.
источник

ДГ

Дмитрий Гаврин... in pgsql – PostgreSQL
A.L.F
Доброго времени суток. Как настроить ldap аутэнтификацию с использованием ad. Нужен синтаксис.
источник

HF

Harry Fox in pgsql – PostgreSQL
Привет народ. Извините за платиновый вопрос, но лучше из первых уст такое узнавать.

Работаю бэкенд разработчиком, хочу повысить свой навык (и зп), но несильно глубоко упарываться.

Может есть какая-то книга маст рид для изучения баз данных и psql в частности, чтобы вообще понимать что происходит. С описанием не только sql'а но и инструментов и всего вокруг.  Спасибо.
источник

VS

Vladimir Smagin in pgsql – PostgreSQL
источник