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

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Как не будет хватать производительности, можно будет задуматься. Но 300 это вообще не объем
    Ответ написан
    Комментировать
  • Как автоматизировать запросы в Postgresql?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Рассматривали вариант репозиторий с CI/CD куда аналитик кладет свой SQL-запрос.


    Ну это нормальная ситуация. Но нужно понимать, что прогонять что-либо на проде, особенно внося изменения, нельзя без тестирования и возможности отката. Еще и без согласования по времени.

    Конечно, можно настроить CD таким образом, чтобы пайплайн проверял был ли он запущен на тесте до того как запускать на проде, и при запуске на проде, чтобы выполнялся бэкап.

    Но риски, если что-то пойдет на продакшене не так кто берет на себя?
    Это нужно заранее обговорить с владельцем проекта.
    То есть у вас перед принятием технического решения, нужно решить организационный.

    P.S. Для обычных то есть рид-онли запросах, обычно просто пишется маленькое веб-приложение прямо для аналитиков, в котором шаблонизируются необходимые запросы и выдается результат в удобном для аналитике виде (html/csv/excel...), как часть обычного процесса разработки, интегрируется с вашей же системой авторизации и раздаются права какой репорт (запрос) кто может выполнять и смотреть результат.
    Ответ написан
    Комментировать
  • Стоит ли хранить HTML документ в базе?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Базу это естественно не убьет.
    Вопрос как хранить влияет на то, как часто и кто будет запрашивать документы, как часто добавлять новые.
    Но даже сейчас мне кажется, что 1-2 страницы А4 в HTML будет занимать меньше место в базе, чем отдельными файлами.
    Можно посмотреть в сторону монги, и то не факт что имеет смысл.
    Ответ написан
  • Как дропнуть все таблицы?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Ну так клиентом комнадной строки дропай
    psql -h 192.168.1.1 -d %dbname% -U %dbuser% -c "delete from users;"

    или отдельный sql файл сделай со всеми командами и -f file.sql
    Ответ написан
  • Что быстрее SQL или Javascript?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Вопрос задан как пальцем в небо.
    Быстрее будет не отдельно взятый постгрес или сайт на js, а машина, на которой это все будет считаться.
    JS где - у пользователя в браузе, или это nodejs на сервере?
    постгрес крутится на той же машине, или на другой? Какой там процессор, сколько, сколько памяти?

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

    Но вам никто не ответит на вопрос точно. Гораздо проще провести перформанс тесты и посмотреть живые ответы.
    Ответ написан
    3 комментария
  • Как показывать свое сообщениe, когда команда psql завершается с ошибкой?

    saboteur_kiev
    @saboteur_kiev Куратор тега bash
    software engineer
    psql fignya >/dev/null 2>/dev/null
    if [ $? -ne 0 ]; then
      echo "My own sql error message"
    else
      echo "Sql completed successful"
    fi
    Ответ написан
    Комментировать
  • Как переносятся базы данных Postgresql и Mysql?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Много вариантов

    Сделать дамп и развернуть его на другой базе.

    Поднять репликацию, подождать пока базы синхронизируются, убрать старую

    Если базы одинаковой версии, можно конечно и файлы тупо скопировать, но это редко практикуется.

    При переносе данных с одной версии на другую, надо смотреть что пишет по этому поводу вендор. Может как просто развернуться, так и требовать специальной процедуры конвертации.
    Ответ написан
    Комментировать
  • Как проще и правильнее перенести одну запись из бэкапа?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Нет естественно. Никто не знает что у вас за структура и в каких таблицах что лежит.
    Нужно искать.
    Как вариант, админ мог удалить юзера, не удаляя его сообщения и заказы.
    Ну это нужно руками смотреть.
    Если у вас кастомный софт, то только самому лазить и искать все.
    Ответ написан
    Комментировать
  • Чем автоматизировать бэкап 1000 БД на нескольких серверах?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    баш скрипт с pg_dump
    и все.
    Ответ написан
    Комментировать
  • Шардинг и резервное копирование/восстановление?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    например шарды одной большой таблицы будут разнесены на 2 и более физических сервера

    А это зачем?
    Так не делают. Горизонтально делают для увеличения скорости отдачи.
    Можно конечно данные разнести на разные сервера, но это делается на уровне архитектуры бизнес-логики, а не на уровне одной таблицы.
    Ответ написан
  • Стоит ли хранить базы данных на SSD?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    SSD - это расходник. Давно уже нужно понимать, что в 99% случаев, жизнь SSD более чем достаточна, особенно для "базы для личной разработки". Возьмите нормальный SSD на терабайт, и он переживет HDD
    Ответ написан
    4 комментария
  • Pg_basebackup, зависит ли скорость копирования от типа данных преобладающих в БД и можно ли как-то увеличить скорость копирования средствами postgres?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Есть БД на 1ТБ, создана искусственно. содержит кучу табличек с текстовыми полями содержащими хеш от рандома (каждая порядка 10Gb).
    Копирование всего кластера на соседнюю машину занимает порядка 14 часов.


    1 тб = 1000 гб.

    100 мбит = ~10 мегабайт в секунду. 600 мегабайт в минуту То есть 1000 гигабайт/ 0.6 = 27 часов.

    1000 мбит = ~100 мегабайт в секунду, но часто пропускная способность дисков упирается в примерно 50 мегабайт/сек = 3 гб/мин, 1000 гигабайт/ 3 гб ~ 5.5 часов

    Подозреваю, что все-таки бутылочное горлышко либо сеть (gzip сжимает данные, потому вместо 27 часов получаете около 14)
    Либо gzip сжатие в один поток (напрягается только одно ядро, из-за чего кажется, что CPU не нагружен), выполняется слишком долго.

    В первом случае убедитесь, что -z включено и попробуйте -Z 9, а также гигабитную сеть
    Во втором случае попробуйте наоборот -Z 1, чтобы уменьшить нагрузку на CPU
    Ответ написан
    8 комментариев
  • Насколько сильно LVM может тормозить работу PostgreSQL?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    LVM для того и создан, чтобы можно было управлять свободным местом онлайн.
    Сам по себе LVN особой нагрузки не дает, но все зависит от того, что вы с ним будете настраивать.
    Ответ написан
    Комментировать
  • Как реализовать квесты в бд для онлайн игры?

    saboteur_kiev
    @saboteur_kiev Куратор тега Разработка игр
    software engineer
    Так вам нужно много табличек.
    Табличка с типами заданий, табличка с ключевыми персонажами, предметами, строками которые фигурируют в задании. Табличка с самими квестами, где для квеста будет перечислены его шаги из заданий и участников, логика квеста (его ветки в зависимости от результата выполнения) а также известный ревард.
    А уже потом табличка со статусом пользователей о прохождении конкретного квеста.
    Ответ написан
    2 комментария
  • Почему запрашивает пароль в postgres?

    saboteur_kiev
    @saboteur_kiev Куратор тега Ubuntu
    software engineer
    alejandro@node:~$ sudo -i -u postgres
    [sudo] password for alejandro:


    Тут же черным по белому пишет, что пароль запрашивает команда sudo, а не postgres
    либо настройте sudoers так, чтобы для вашего пользователя ваш пароль не запрашивало, либо логиньтесь от имени пользователя postgres, или вообще разберитесь с аккаунтами и вашими целями.
    Ответ написан
    Комментировать
  • Какую прочитать книгу/курс по проектированию баз данных?

    saboteur_kiev
    @saboteur_kiev Куратор тега Книги
    software engineer
    Исходя из личного опыта, заниматься проектированием крупной базы данных лучше поручить специалисту с опытом, а не почитав пару книжек. Выйдет гораздо дешевле и надежнее.
    Ответ написан
    1 комментарий
  • Вопрос к опытным админам. Где набраться достаточно опыта в кратчайшие сроки?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    "Кратчайшие сроки" и "научиться администрировать линукс, mysql, pgsql и телефонию" - взаимоисключающие параграфы. Кроме того, "достаточно опыта" не говорит ни о чем, так что ваш вопрос - это не вопрос а вопль в небо, и все вам скажут "читайте документацию, пользуйтесь гуглом" по каждой проблеме.

    А по-нормальному, на месте уже должен быть уже опытный человек, которому вы помогаете. Это будет самое быстрое, поскольку "научиться администрировать Линукс" и "научиться поддерживать Линукс в конкретной конторе с конкретной инфраструктурой" - разные вещи.
    Ответ написан
    1 комментарий
  • Какие аргументы в пользу использования транзакций в бд?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    "1) Добавить транзакцию - всего несколько строк кода.
    2) Как раз таки хотелось бы услышать, какие кейсы проблем здесь возможны"

    Написать несколько строк кода - время разработчиков и деньги заказчика."
    Протестировать несколько строк кода - время тестировщиков и деньги заказчика.
    Добиться создания новой таски, которую оплатит заказчик - время менеджеров и деньги заказчика

    Использование транзакций это просто инструмент, а не истина. Вам нужно привести пример, когда в текущей работе вашего приложения может возникнуть реальная ситуация с ошибками, связанная с тем, что вы не используете транзакции, и что решить или предотвратить такую ситуацию при помощи внедрения транзакций - будет выгоднее и дешевле, чем при помощи кода, как это сделано сейчас.

    Искать ответ на тостере, где не знают ни про ваш проект, ни условий работы, ни того, насколько легко добавить подобную задачу в спринт - вряд ли вы получите правильный ответ, есть даже вероятность что вы получите несколько разных ответов, но за правильный примете только тот, который лично вам по душе, а не тот, который более адекватный.
    Ответ написан
    1 комментарий
  • Целесообразно ли регистрировать пользователей сайта как PostgreSQL-пользователей?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Совершенно противоестественная идея.
    Пользователи не умеют правильно пользоваться приложением. Не умеют придумывать сложные пароли. Не умеют вообще следить за паролями. Если вы будете раздавать sql доступ к базе, ее обязательно поломают. Сломают других пользователей и так далее. А средствами sql базы безопасность поддерживать можно очень ограниченно.
    Ответ написан
    5 комментариев
  • Что выбрать MySQL или PostgreSQL?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    IMHO ваша нагрузка вообще невелика. У меня на mysql живут проекты с несколькими миллионами добавлений в сутки, и я не считаю, что это едва середнячок.

    MySQL все еще считается более популярным и в случае чего, проще найти для него ответы. Для вашего проекта я бы порекомендовал его.
    Ответ написан
    Комментировать