Postgresql: держать соединение открытым или создавать при необходимости - PullRequest
0 голосов
/ 07 февраля 2019

У меня есть несколько классов C ++, представляющих мои таблицы postgresql.Каждый класс может выполнить запрос к связанной таблице:

class MyTable : Table<MyDataType> {
    public:
        MyTable();
        ~MyTable();

        int add(std::vector<MyDataType> list);
        int remove(std::vector<MyDataType> list);

    };
}

Допустимо ли создавать новое соединение для каждого метода вместо обработки только одного соединения на класс?Что-то вроде:

int MyTable::add(std::vector<MyDataType> list)
{
    pqxx::connection c(PQ_CONNECTION_STRING);
    // Do some request
    c.disconnect()
}

int MyTable::remove(std::vector<MyDataType> list)
{
    pqxx::connection c(PQ_CONNECTION_STRING);
    // Do some request
    c.disconnect();
}

Есть ли какие-либо недостатки помимо времени установления соединения?я не нашел в документе никаких показаний против этого.

Стоит ли мне открывать соединение в конструкторе и закрывать его в деструкторе, даже если это значит держать соединение открытым даром?

Спасибо

...