Задать вопрос
  • Какие типы данных использовать в bindParam в PDO?

    Melkij
    @Melkij
    PARAM_BOOL, PARAM_INT, PARAM_STR (плюс пара вариантов charset). PARAM_LOB и PARAM_NULL сомнительной полезности, да нереализованный PARAM_STMT, PARAM_INPUT_OUTPUT - не параметр, а только дополнение для других.
    Где вы ещё видите много десятков параметров? Или игнорируете документацию где сказано что bindParam принимает PDO::PARAM_* ?
    Что у вас за варианты и откуда вообще взялись вторые два - я без понятий.

    То есть, именнованные параметры, которые по идее должны фильтровать ввод

    Не должны. Совсем.
    api prepared statements - это транспорт. Решают задачу как передать значения из приложения в СУБД. Какие значения передавать - это обязанность вашего кода.
  • Cannot re-assign auto-global variable _POST in?

    Melkij
    @Melkij
    YTGoodFox, а с какой целью пишете код? Если чтобы научиться - на что указывает что пишете по уроку - то вот, изучайте. Это основное занятие разработчика и есть - найти что не так и как исправлять. Начинающим хорошо, компилятор подсказывает.

    Я уже прямо написал в чём у вас ошибка.
  • [22007] ERROR: invalid value "{dt." for "YYYY" Подробности: Value must be an integer?

    Melkij
    @Melkij
    '{dt.ToString("YYYY-MM-dd")}' похоже что должно быть подставлено приложением, но судя по тексту ошибки этого не произошло.
  • Какая БД лучше работает с репликацией master-master?

    Melkij
    @Melkij
    softshape, мультимастер - это философский камень от мира СУБД. Как и алхимики в прошлом - вам много кто попробует мультимастер продать. А вот работающий ли... Необходимо внимательно разбирать как именно реализовали. И насколько этот способ подходит именно вам.

    Проблематику я уже описал в ответе, могу дополнить примером:
    Делаем денежный перевод, его должны одобрить безопасники.
    БД 1 ставит статус "одобрено" и отправляет перевод на выполнение.
    БД 2 ставит статус "отклонено"
    Ну и каково должно быть поведение работающего мультимастера? Какой статус оставить? А почему?
  • Какая БД лучше работает с репликацией master-master?

    Melkij
    @Melkij
    softshape, нет.
    MongoDB is an example of a sharded database architecture.

    Это не мультимастер. Это наборы шардов, каждый шард - набор из одного мастера и реплик. Конкретный документ может быть обновлён только на текущем мастере replicaset.
  • Как разветвить интернет кабель?

    Melkij
    @Melkij
    Ynanicha, можете развести розетку самостоятельно. Это просто если знать что в 100мбит/с режиме используется только две витые пары. Но не поможет если у вас только 4-жильный кабель и заведён в помещение. А они дешевле 8-жильных и тут могли сэкономить при монтаже ранее.
  • Что если сделать RAID 1?

    Melkij
    @Melkij
    Рональд Макдональд, а что мешает абсолютно неизвестной железке так поступить? Здравый смысл?
    Да, я намеренно сгущаю краски т.к. никакой конкретики в вопросе не обозначено. Невозможно доказать, что не существует контроллера который будет творить абсурд.
  • Какой графический интерфейс добавить клиенту для работы с Postgresql?

    Melkij
    @Melkij
    Кто ваши клиенты, если они представляют как работать напрямую с СУБД, но ещё не выбрали себе GUI по вкусу сами?
  • Можно ли использовать 2 сервера Redis на одном хосте?

    Melkij
    @Melkij
    Внутри Redis можно создавать разные базы

    eviction policy уже можно per-database настраивать? Просто интересуюсь, когда-то давно поэтому запускал два инстанса
  • Не получается сделать дамп pg_dump. Как разобраться с ролями в Postgres?

    Melkij
    @Melkij
    что это за таблицы XXX_id_seq

    А это и не таблицы, так обычно sequence именуются.
  • Не получается сделать дамп pg_dump. Как разобраться с ролями в Postgres?

    Melkij
    @Melkij
    Разве pg_dump не должен сам к ней подключаться во время дампа?

    Именно о чём и говорю
    connection to database "mydb" failed
  • Можно ли задать таблице название числом?

    Melkij
    @Melkij
    Сергей Горностаев, mayton2019,
    Виталий, синтаксический анализатор попробуйте написать.

    Давайте (гипотетически) представим что это возможно.

    А давайте представим. Потому что это обязательная часть стандарта SQL. Часть E031-01 Delimited identifiers.

    Имя таблицы может быть числом. Синтаксически к такому имени придётся обращаться как "12345", но имя этой таблицы - именно 12345, так она в справочных каталогах и будет фигурировать.
  • Как собрать лог востановления БД PostgreSQL из dmp-файла?

    Melkij
    @Melkij
    да, конечно, а куда денется? Других fd для вывода на консоль нет.
  • Как собрать лог востановления БД PostgreSQL из dmp-файла?

    Melkij
    @Melkij
    иии... упс, получили полностью неверный ответ =(
    Specify output file for generated script

    а не лог вывода.
    --file используется для конвертации собственных форматов custom и directory в plain text. Взаимно исключает использование --dbname
  • Postgres синхронная репликация?

    Melkij
    @Melkij
    Простой, ага, как бы не так. Если бы это было просто.
  • Postgres синхронная репликация?

    Melkij
    @Melkij
    Devtime,
    хотим обкатать самый простой вариант масштабирования системы.

    Но смотрите как раз на самый сложный.

    Ростелеком, мда. А селектел какие-нибудь чего? Хорошее железо под базу у них есть.
  • Postgres синхронная репликация?

    Melkij
    @Melkij
    Я по неопытности думал что после сохранения на жесткий диск все транзакции уже применены (до этого они лежат в оперативной памяти)

    Здесь нюанс - сохранение чего именно.
    Получение потока изменений - это один процесс, walreceiver. WAL он получает с primary, пишет на диск (synchronous_commit = remote_write), дёргает fsync для гарантии того что в случае краха эта транзакция уже сохранена локально (on)
    применение изменений к базе - выполняется полностью отдельно и асинхронно от получения данных - процесс startup (remote_apply)
    И оба они имеют лишь опосредованное отношения к записи применённых изменений непосредственно в базе на диск - этим занимаются отдельные процессы bgwriter и checkpointer (ну, в норме, если успевают - если не успевают то и startup придётся писать датафайлы)

    Можете посоветовать хороший балансировщик, который можно дополнительно настроить скриптами правила маршрутизации запроса?

    select * from something;
    Это запрос читающий или пишущий? Да неизвестно! Что даёт вам основание решить, что something - это таблица, а не, например, view поверх пишущей хранимки?
    Кто это знает наверняка? Разработчик приложения. Следовательно наиболее корректное место для деления запросов по серверам - это само приложение.
    Делить запросы необходимо на следующие группы:
    - запись и чтение критичное к лагу
    - чтение oltp, быстрые запросы, малое отставание реплик
    - чтение olap некритичное к лагу. Долгие запросы, реплики могут отставать заметно

    Балансировать по наборам равнозначных серверов - например, haproxy. Но выбор на какую группу серверов отправлять - задача приложения.

    Чтение с синхронной реплики... Ну, попробуйте. Есть большие опасения что хорошо это работать не будет. Синхронные реплики они в первую очередь про "не потерять транзакцию" чем про лаг репликации.

    Фанатично убирать всё чтение с мастера только потому что это чтение, а это - мастер - бесполезные хлопоты, будете героически решать несуществующие проблемы. (ну да, понимаю, это в традициях IT - искать проблемы где их никогда не было и героически решать) Когда команда только начинает упираться в один сервер - понятное дело что приложение рассчитано на работу на одном сервере СУБД. Но очень хорошего результата можно достичь убрав на реплику всего несколько запросов точечно. Включите pg_stat_satements, через сутки посмотрите что у вас в топе по нагрузке и наверняка увидите то, что можете легко унести на обычную асинхронную реплику. Может быть настроенную на малое отставание, а может - отдельно для тяжёлых запросов некритичных к лагу вообще.
  • Почему мой рейд диск копирует не зеркально?

    Melkij
    @Melkij
    Dmytro Boyko,
    выкинуть диск из массива, сделать таблицу разделов, добавить sda1 в массив. Не забыть поставить загрузчик.
  • Как правильно обратится полю таблицы в БД?

    Melkij
    @Melkij
    и где в запросе упомянута таблица second_name?
    Multiple-table syntax вполне определённый, смотрите примеры в документации.