Типичные ошибки при работе с PostgreSQL

26.05.2021

Языки программирования по большей части предназначены для программистов, занимающихся ими профессионально – от них по умолчанию ожидается, что они разбираются в алгоритмах, структурах данных и тому подобном. При этом даже люди, много лет занимающиеся программированием, всё равно иногда допускают просчёты. С SQL ситуация ещё сложнее – в силу области его применения, с ним приходится иметь дело аналитикам, менеджерам, проектировщикам, специалистам по обработке данных – иными словами, людям, чьё понимание языка иногда остаётся на поверхностном уровне. Поэтому простор для ошибок здесь ещё шире, особенно когда над одной базой параллельно работает много сотрудников. Какие же проблемы в работе с PostgreSQL встречаются чаще всего?

  • Конкурентный доступ. Это означает, что с базой данных одновременно работают два или более разработчиков. Если они вносят изменения в одну и ту же часть БД параллельно, это может привести к самым разным последствиям – потерянным обновлениям, многократным выполнениям одной и той же операции и так далее. Всегда необходимо учитывать эту возможность – если теоретически возможно, что два человека будут одновременно редактировать одну строку, рано или поздно это случится;
  • Отсутствие единообразия в именовании. Каждая сущность должна именоваться одинаково, где бы в базе данных она не возникала. Если в разных таблицах что-то называется obj_id, id_obj, objID, objid и ещё несколькими способами, это влечёт за собой путаницу, неправильно адресованные запросы и ошибки. Особенно внимательно за этим нужно следить при коллективной разработке – именования должны быть определены заранее и донесены до всех участников;
  • Игнорирование ошибок. Если при запросе к базе данных происходит ошибка, её необходимо обработать. Зачастую разработчики ограничиваются тем, что заносят сведения о ней в лог, а никаких дальнейших действий не предпринимается. В этом случае последствия ошибки продолжают влиять на работу БД (например, остаётся открытым соединение, не выполняющее никаких действий, продолжая потреблять ресурсы и замедляя работу);
  • Неиспользование ограничений (constraints). Многие разработчики избегают использовать ограничения, мотивируя тем, что они негативно сказываются на производительности. И это в самом деле так, однако, они в то же время являются одним из самых эффективных способов избегать ошибок, а с учётом того, насколько ощутимыми могут быть последствия некорректной работы баз данных, важность этого трудно переоценить. Иными словами, если вы работаете с бизнес-информацией, если от правильной работы БД зависит движение денежных потоков, то некоторое снижение производительности более чем окупается отсутствием потенциальных проблем с ошибочными выплатами и тому подобными неприятностями.

Разумеется, этим списком возможные сложности при работе с PostgreSQL не исчерпываются – однако, если избегать хотя бы этих проблемных ситуаций, уже можно заметно повысить стабильность своих БД.

Учебный центр РРС
Privacy Overview

This website uses cookies so that we can provide you with the best user experience possible. Cookie information is stored in your browser and performs functions such as recognising you when you return to our website and helping our team to understand which sections of the website you find most interesting and useful.