В прошлой статье мы оптимизировали поиск в PostgreSQL стандартными средствами. В этой статье мы продолжим оптимизацию с помощью индекса RUM и проанализируем его плюсы и минусы в сравнении с GIN.
Рубрика «postgresql» - 26
Готовим полнотекстовый поиск в Postgres. Часть 1
2019-03-12 в 6:09, admin, рубрики: fulltext search, postgresql, web-разработка, Администрирование баз данных, Разработка веб-сайтовЭта статья — первая из небольшой серии статей о том, как оптимально настроить полнотекстовый поиск в PostgreSQL. Мне пришлось недавно решать подобную задачу на работе — и я был очень удивлен отсутствию хоть сколько-нибудь вменяемых материалов по этому поводу. Мой опыт борьбы под катом.
Типичные ошибки при работе с PostgreSQL
2019-03-11 в 14:51, admin, рубрики: dbms, postgres, postgresql, Блог компании Postgres Professional, СУБДЧуть более месяца назад в Москве состоялась крупнейшая конференция постгресового сообщества PGConf.Russia 2019, собравшая в МГУ свыше 700 человек. Мы решили выложить видео и расшифровку лучших докладов. Выступление Ивана Фролкова с разбором типичных ошибок при работе с PostgreSQL было отмечено лучшим на конференции, поэтому мы начнем с него.
Для удобства мы разбили расшифровку на две части. В этой статье речь пойдет о непоследовательном именовании, о constraints, о том, где лучше сосредоточить логику — в базе или в приложении. Во второй части будут разобраны обработка ошибок, конкурентный доступ, неотменяемые операции, CTE и JSON.
В нашей компании я занимаюсь поддержкой клиентов по вопросам, связанным с приложениями, то есть помогаю в случаях проблем с соединениями, с оптимизацией запросов и прочими подобными вещами. Насмотрелся я приложений самых разных. Чего я только не видел! Может быть даже больше, чем хотелось бы. Часть из того, что я буду рассказывать, относится не только к PostgreSQL, а к любой базе, но кое-что прежде всего к PostgreSQL.
Главный вывод, который я смог сделать из того, что я видел, довольно неожиданный: фактически любое приложение при должной настойчивости можно заставить работать. Был замечательный проект (я не могу упоминать все компании, с которыми мы работали), в котором еще более замечательное приложение создавало таблицы миллионами. Выглядело это так: в понедельник система работает неплохо, а уже в пятницу она практически не работает. На выходные дни запускают VACUUM FULL, и в понедельник она опять работает хорошо. Оказывается, над PostgreSQL можно вот так издеваться, и всё это довольно долго будет жить и работать. Другой товарищ сделал странную вещь: у него всё было построено на триггерах, процедур не было вообще. То есть большую часть таблиц трогать нельзя, сделать что-либо не получалось, но и эта база жила.
Читать полностью »
Сюрпризы планировщика запросов в БД PostgreSQL
2019-03-11 в 14:48, admin, рубрики: postgresql, sql, Администрирование баз данных, базы данных, Блог компании OkkoГрафики, отчеты и аналитика – все это так или иначе присутствует в back-office любого, даже совсем маленького, предприятия. Когда в обычных таблицах в Excel/Numbers/Libre становится уже тесно, но data все еще не очень big, традиционные решения для внутренних потребностей компании часто строятся с помощью реляционных баз данных, таких как PostgreSQL, MySQL или MariaDB.
Эти базы данных бесплатны, благодаря SQL удобно интегрируются с остальными компонентами в системе, они популярны и с ними умеют работать большинство разработчиков и аналитиков. Нагрузку (трафик и объемы) они могут переварить достаточно объемную, чтобы спокойно продержаться до того момента, когда компания сможет позволить себе более сложные (и дорогие) решения для аналитики и отчетов.
Читать полностью »
Статья про то, как CommVault делает бэкап PostgreSQL
2019-03-06 в 12:35, admin, рубрики: Commvault, postgresql, softline, Блог компании Softline, бэкап, резервное копирование, СофтлайнВ данной статье мы рассмотрим наш опыт использования CommVault для резервного копирования PostgreSQL. Для этого разберем небольшую часть одного из наших прошлых проектов, где мы настраивали резервное копирование БД PostgreSQL у клиента.
Indexes in PostgreSQL — 2
2019-03-04 в 12:51, admin, рубрики: index, indexing, postgres, postgresql, sql, Блог компании Postgres ProfessionalInterface
In the first article, we've mentioned that an access method must provide information about itself. Let's look into the structure of the access method interface.
Properties
All properties of access methods are stored in the «pg_am» table («am» stands for access method). We can also get a list of available methods from this same table:
postgres=# select amname from pg_am;
amname
--------
btree
hash
gist
gin
spgist
brin
(6 rows)
Although sequential scan can rightfully be referred to access methods, it is not on this list for historical reasons.
In PostgreSQL versions 9.5 and lower, each property was represented with a separate field of the «pg_am» table. Starting with version 9.6, properties are queried with special functions and are separated into several layers:
- Access method properties — «pg_indexam_has_property»
- Properties of a specific index — «pg_index_has_property»
- Properties of individual columns of the index — «pg_index_column_has_property»
The access method layer and index layer are separated with an eye towards the future: as of now, all indexes based on one access method will always have the same properties.
Читать полностью »
ASH Viewer: перезагрузка
2019-02-22 в 2:04, admin, рубрики: java, java 8, legacy-код, open source, oracle, oracle database, postgresql, Блог компании Инфосистемы Джет, разработка программного обеспеченияЧто делать, если надо работать с данными, которые по объему еще не Big data, но уже больше того, что умещается в памяти компьютера и для которых достаточно возможностей Excel? Для любителей велосипедостроения ответ очевиден – нужно писать что-то свое (да, мы не ищем легких путей).
Но как быть, если код, написанный тобой в прошлом, ужасен и не дает тебе возможности развивать проект? Отставить в сторонку старые наработки, дать дорогу новому, вечному и светлому (да-да, и тут тоже без вариантов).
Цитата из кф Матрица: “Достаточно одной таблетки, Нео”. Режиссер: братья и сестры Вачовски. 1999. США
Читать полностью »
Важные изменения в работе CTE в PostgreSQL 12
2019-02-17 в 18:54, admin, рубрики: postgresql, postgresql 12, sql, Программирование, Разработка веб-сайтовWITH w AS NOT MATERIALIZED (
SELECT *
FROM very_very_big_table
)
SELECT *
FROM w AS w1
JOIN w AS w2
ON w1.key = w2.ref
WHERE w2.key = 123;
Сегодня в репозиторий PostgreSQL упал комит, позволяющий управлять поведением обработки подзапросов CTE, а именно: теперь можно явно указывать, будет ли подзапрос материализовываться отдельно или же выполняться как часть одного большого запроса.
Это войдет в PostgreSQL 12, и это big deal. Давайте рассмотрим, почему
Работа с сервисом Managed Databases от Digital Ocean в .NET Core
2019-02-16 в 12:26, admin, рубрики: .net, digital ocean, netcore, postgresql, облачные сервисы
В том время, как у других облачных платформ уже давно есть свои решения для баз данных, Digital Ocean в этом сегменте до сегодняшнего дня ничего не предлагал. Но 14 февраля, в день всех влюбленных, компания решила сделать подарок своим клиентам и в режиме Limited Availability запустила сервис Managed Databases.
Поскольку Digital Ocean сейчас является довольно популярной платформой для хостинга небольшой проектов на .NET Core, я не мог обойти вниманием это событие.
Как работает сервис и какие есть нюансы при подключении к базе при использовании .NET Core в я расскажу в этой публикации.
Читать полностью »
Повышение привилегий в PostgreSQL — разбор CVE-2018-10915
2019-02-15 в 9:37, admin, рубрики: postgresql, информационная безопасность, уязвимости и их эксплуатация
Не секрет, что стейт-машины среди нас. Они буквально повсюду, от UI до сетевого стека. Иногда сложные, иногда простые. Иногда security-related, иногда не очень. Но, зачастую, довольно увлекательны для изучения :) Сегодня я хочу рассказать об одном забавном случае с PostgreSQL — CVE-2018-10915, которая позволяла повышать привилегии до superuser.