как правильно обеспечить надежность и безотказность ее работы?
доступен 24 часа 7 дней в неделю.
бекап
в случае проблем с доступностью, перезапускать/запускать саму СУБД.
какие операции, запросы или их комбинации нежелательны для БД и могут привести к проблемам.
This parameter controls the average number of object locks allocated for each transaction; individual transactions can lock more objects as long as the locks of all transactions fit in the lock table. This is not the number of rows that can be locked; that value is unlimited. The default, 64, has historically proven sufficient, but you might need to raise this value if you have queries that touch many different tables in a single transaction, e.g. query of a parent table with many children.
Ибо эат команда, разумеется, уже не работает.
alter table tablename add constraint tablename_p1_xor_p2 check((p1 is null and p2 is not null) or (p2 is null and p1 is not null));
--with-pgport=PORTNUM set default port number [5432]
Пока он как-то сам выбирает порт
postgres=# CREATE DATABASE joba_finder;
CREATE DATABASE
postgres=# CREATE USER jf_user WITH PASSWORD 'qwerty';
CREATE ROLE
postgres=# \l joba_finder
Список баз данных
Имя | Владелец | Кодировка | LC_COLLATE | LC_CTYPE | Права доступа
-------------+----------+-----------+-------------+-------------+---------------
joba_finder | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 |
(1 строка)
postgres=# GRANT ALL PRIVILEGES ON DATABASE joba_finder to jf_user;
GRANT
postgres=# \l joba_finder
Список баз данных
Имя | Владелец | Кодировка | LC_COLLATE | LC_CTYPE | Права доступа
-------------+----------+-----------+-------------+-------------+-----------------------
joba_finder | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =Tc/postgres +
| | | | | postgres=CTc/postgres+
| | | | | jf_user=CTc/postgres
(1 строка)
postgres=# select version();
version
--------------------------------------------------------------------------------------------------------
PostgreSQL 11.2 (Debian 11.2-2) on x86_64-pc-linux-gnu, compiled by gcc (Debian 8.3.0-2) 8.3.0, 64-bit
(1 строка)
postgres=# select
postgres-# \l joba_finder
Список баз данных
Имя | Владелец | Кодировка | LC_COLLATE | LC_CTYPE | Права доступа
-------------+----------+-----------+-------------+-------------+-----------------------
joba_finder | postgres | UTF8 | ru_RU.UTF-8 | ru_RU.UTF-8 | =Tc/postgres +
| | | | | postgres=CTc/postgres+
| | | | | jf_user=CTc/postgres
(1 строка)
postgres-# 1;
?column?
----------
1
(1 строка)
Возможно ли не встравлять в таблицу записи, которые уже присутствуют в таблице?
SELECT Prop.*, coalesce("counters".countAllUnits, 0) AS "countAllUnits", coalesce("counters".countVacantUnits, 0) AS "countVacantUnits"
FROM "Property" AS Prop
INNER JOIN LATERAL
(
SELECT COUNT(*) AS countAllUnits,
count(*) filter(where "Unit".status = 'Vacant') as countVacantUnits
FROM "Unit"
WHERE Prop."id" = "Unit"."propertyId"
) AS "counters" ON true
WHERE Prop."userId" IN (
SELECT id FROM "User" WHERE "companyId" = 200001
)
ORDER BY Prop."userId" ASC LIMIT 10 OFFSET 0
Но первичный ключ является обязательным для каждой таблицы
Peer authentication failed for user "MyUser"
1) PSQL создает индекс в одно-поточном режиме. Это 10% от всей производительности cpu.
2) Как я понял он считывает базу перерабатывает и сжимает. (В одно-поточном режиме это происходит оч медленно.)
3) Из-за того что он медленно перерабатывает данные, он не использует всю скорость ссд на котором расположена база.
но не нашел как их реализовать