Ответы пользователя по тегу PostgreSQL
  • С какого количества записей индексация имеет смысл?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    С какого количества записей индексация имеет смысл?

    С того момента, когда планировщик начал показывать приличную разницу, как только получаете прирост - используйте индексацию, не получаете - не используйте.
    Сделал выборку по определенному имени, вышло 75-90 мсек.
    SELECT name FROM users WHERE name='Mike';
    Добавил индекс CREATE INDEX name_idx ON users (name);
    Выборка так и осталась в пределах 75-85 мсек.

    Вы сами задали вопрос и сразу же ответили на него...
    Ответ написан
    Комментировать
  • Почему нельзя войти в phpPgAdmin на OpenServer?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    У меня так же возникли проблемы с авторизацией, помогла ветка на их форуме.
    Ответ написан
  • Как устранить ошибку "operator does not exist: integer = integer[]"?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    ANY вместо IN?
    CREATE OR REPLACE FUNCTION get_count(VARIADIC ids integer[]) RETURNS int AS $$
    	SELECT COUNT(*) FROM device 
    	-- WHERE device.id IN (ids)
    	WHERE device.id = ANY (ids)
    $$ LANGUAGE SQL
    Ответ написан
    2 комментария
  • В каких случаях применяются рекомендательные блокировки?

    Mike_Ro
    @Mike_Ro
    Python, JS, WordPress, SEO, Bots, Adversting
    Предположу, что имелось ввиду не "рекомендательные блокировки", а "advisory locks" (советующие блокировки).

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

    Пример установления блокировки на время выполнения определенной операции:
    -- Пытаемся взять блокировку с ключом 1. Если она занята другим процессом, то мы её не получим.
    SELECT pg_try_advisory_lock(1);
    
    -- Если блокировка у нас, можем делать свою работу, спокойно зная, что никто другой её не делает одновременно с нами.
    
    -- После выполнения работы освобождаем блокировку, чтобы другие могли её использовать.
    SELECT pg_advisory_unlock(1);


    Некоторые из основных сценариев их использования:

    - Контроль одновременного доступа: Гарантирует, что только один процесс выполняет критическую операцию в данный момент времени.
    - Очереди заданий: Убеждается, что задача из очереди выполняется только одним рабочим процессом.
    - Планирование задач: Гарантирует, что запланированная задача (например, ежедневное обновление) запускается только один раз.
    - Координация между системами: Если разные системы взаимодействуют с одной базой данных, блокировки помогают им работать последовательно.
    - Ограничение частоты: Удостоверяется, что определенная операция не происходит слишком часто.
    Ответ написан
    Комментировать