]> git.mxchange.org Git - friendica.git/commitdiff
Configuration if the database is opened with persistent connections
authorMichael <heluecht@pirati.ca>
Thu, 27 Aug 2020 10:59:14 +0000 (10:59 +0000)
committerMichael <heluecht@pirati.ca>
Thu, 27 Aug 2020 10:59:14 +0000 (10:59 +0000)
src/Database/Database.php
static/defaults.config.php

index d155a9276c711e681576a35340483ee214ba0f1b..787ae54c7bc346040fd68e3c07773a461fceaf6c 100644 (file)
@@ -134,6 +134,8 @@ class Database
                        return false;
                }
 
+               $persistent = (bool)$this->configCache->get('database', 'persistent');
+
                $this->emulate_prepares = (bool)$this->configCache->get('database', 'emulate_prepares');
                $this->pdo_emulate_prepares = (bool)$this->configCache->get('database', 'pdo_emulate_prepares');
 
@@ -150,7 +152,7 @@ class Database
                        }
 
                        try {
-                               $this->connection = @new PDO($connect, $user, $pass);
+                               $this->connection = @new PDO($connect, $user, $pass, [PDO::ATTR_PERSISTENT => $persistent]);
                                $this->connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, $this->pdo_emulate_prepares);
                                $this->connected = true;
                        } catch (PDOException $e) {
index b711345064a59cba129e793519b80b1d0b363e4b..947ac1dc01d4af4c50a26bcd23909e0028d53859 100644 (file)
@@ -62,6 +62,13 @@ return [
                // disable_pdo (Boolean)
                // PDO is used by default (if available). Otherwise MySQLi will be used.
                'disable_pdo' => false,
+
+               // persistent (Boolean)
+               // This controls if the system should use persistent connections or not.
+               // Persistent connections increase the performance.
+               // On the other hand the number of open connections are higher,
+               // this will most likely increase the system load.
+               'persistent' => false,
        ],
        'config' => [
                // admin_email (Comma-separated list)