Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Gunakan kumpulan sambungan php-fpm untuk meningkatkan prestasi capaian pangkalan data

Gunakan kumpulan sambungan php-fpm untuk meningkatkan prestasi capaian pangkalan data

WBOY
WBOYasal
2023-07-07 09:24:091583semak imbas

Gunakan kumpulan sambungan php-fpm untuk meningkatkan prestasi capaian pangkalan data

Ikhtisar:
Dalam pembangunan web, akses pangkalan data ialah salah satu operasi yang paling kerap dan memakan masa. Kaedah tradisional adalah untuk mencipta sambungan pangkalan data baharu untuk setiap operasi pangkalan data dan kemudian menutup sambungan selepas digunakan. Kaedah ini akan menyebabkan penubuhan dan penutupan sambungan pangkalan data yang kerap, meningkatkan overhed sistem. Untuk menyelesaikan masalah ini, anda boleh menggunakan teknologi kolam sambungan php-fpm untuk meningkatkan prestasi capaian pangkalan data.

Prinsip kumpulan sambungan:
Kolam sambungan ialah teknologi caching yang pra-mewujudkan dan mengekalkan bilangan sambungan pangkalan data tertentu dalam ingatan Apabila pangkalan data perlu diakses, sambungan diperoleh terus daripada kumpulan sambungan dan sambungan itu dikembalikan selepas digunakan Pengumpulan sambungan dan bukannya kerap membuat dan menutup sambungan pangkalan data. Dengan cara ini, bilangan penubuhan dan penutupan sambungan pangkalan data dapat dikurangkan dan prestasi capaian pangkalan data dapat dipertingkatkan.

Gunakan kumpulan sambungan php-fpm:
Dalam PHP, anda boleh menggunakan kumpulan sambungan php-fpm untuk melaksanakan fungsi kumpulan sambungan pangkalan data. Berikut ialah kod sampel:

  1. Konfigurasikan kumpulan sambungan php-fpm:
    Dalam fail konfigurasi php-fpm, tambah parameter konfigurasi yang berkaitan untuk menentukan saiz kumpulan sambungan dan pemacu pangkalan data yang digunakan, dsb. Konfigurasi sampel adalah seperti berikut:
;pm = dynamic
pm = static
pm.max_children = 100
pm.start_servers = 20
pm.min_spare_servers = 5
pm.max_spare_servers = 35

Di sini, kami menetapkan saiz kolam sambungan kepada 100, bilangan pelayan permulaan kepada 20, bilangan minimum pelayan tempah kepada 5, dan bilangan maksimum pelayan tempah kepada 35 . Parameter ini boleh dilaraskan mengikut keadaan sebenar.

  1. Menulis kelas kumpulan sambungan pangkalan data:
    Anda boleh menulis kelas tunggal untuk mengurus kumpulan sambungan pangkalan data dan melaksanakan fungsi mendapatkan sambungan daripada kumpulan sambungan dan mengembalikan sambungan ke kumpulan sambungan. Kod sampel adalah seperti berikut:
class DBPool
{
    private static $instance;
    private $pool;

    private function __construct()
    {
        $this->pool = new SplQueue();
    }

    public static function getInstance()
    {
        if (!isset(self::$instance)) {
            self::$instance = new DBPool();
        }
        return self::$instance;
    }

    public function getConnection()
    {
        if (!$this->pool->isEmpty()) {
            return $this->pool->dequeue();
        }
        
        $conn = new PDO("mysql:host=localhost;dbname=test", "root", "password");
        return $conn;
    }

    public function returnConnection($conn)
    {
        $this->pool->enqueue($conn);
    }
}
  1. Gunakan kumpulan sambungan untuk mendapatkan dan mengembalikan sambungan:
    Di mana anda perlu mengakses pangkalan data, gunakan kumpulan sambungan untuk mendapatkan dan mengembalikan sambungan pangkalan data. Kod sampel adalah seperti berikut:
$dbPool = DBPool::getInstance();
$conn = $dbPool->getConnection();

// 执行数据库操作
$stmt = $conn->prepare("SELECT * FROM users");
$stmt->execute();
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);

$dbPool->returnConnection($conn);

Dalam kod sampel di atas, mula-mula dapatkan sambungan pangkalan data melalui kelas DBPool, kemudian lakukan operasi pangkalan data yang diperlukan, dan akhirnya kembalikan sambungan ke kumpulan sambungan.

Nota:

  • kumpulan sambungan php-fpm memerlukan konfigurasi dan pelarasan tambahan, yang harus dilaraskan mengikut beban sistem dan keperluan aplikasi.
  • Saiz kolam sambungan perlu dikonfigurasikan mengikut situasi sebenar. Kolam sambungan yang terlalu kecil boleh mengakibatkan sambungan tidak mencukupi dan kolam sambungan yang terlalu besar mungkin menduduki terlalu banyak sumber.
  • Apabila menggunakan kolam sambungan, anda perlu memberi perhatian kepada pemerolehan dan pemulangan sambungan untuk memastikan kesahihan dan pemulangan sambungan yang betul.

Ringkasan:
Dengan menggunakan teknologi kumpulan sambungan php-fpm, prestasi capaian pangkalan data boleh dipertingkatkan dengan ketara dan bilangan penubuhan sambungan pangkalan data serta masa tutup dapat dikurangkan. Penggunaan kolam sambungan perlu dikonfigurasikan dan diselaraskan mengikut situasi sebenar untuk mencapai prestasi terbaik. Pada masa yang sama, apabila menggunakan kolam sambungan, anda perlu memberi perhatian kepada pemerolehan dan pemulangan sambungan untuk memastikan kesahihan dan pemulangan sambungan yang betul. Dengan menggunakan kumpulan sambungan php-fpm secara rasional, prestasi capaian pangkalan data boleh dipertingkatkan dengan ketara dan pengalaman pengguna aplikasi web boleh dipertingkatkan.

Atas ialah kandungan terperinci Gunakan kumpulan sambungan php-fpm untuk meningkatkan prestasi capaian pangkalan data. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn