Bagaimana untuk mengkonfigurasi kumpulan sambungan pangkalan data dalam thinkphp

王林
Lepaskan: 2023-05-28 18:43:32
ke hadapan
1770 orang telah melayarinya

1. Apakah kumpulan sambungan pangkalan data

Sambungan pangkalan data tradisional ialah satu cara untuk menggunakan sumber sistem ia akan Ini membawa kepada masalah seperti pembaziran sumber sistem dan kelewatan tindak balas. Kumpulan sambungan pangkalan data ialah kaedah perkongsian sambungan yang menyimpan cache sambungan ke dalam kumpulan sambungan Berbilang benang boleh berkongsi sambungan dalam kumpulan sambungan yang sama, dengan itu mengurangkan penggunaan sumber sistem.

2. Cara mengkonfigurasi kumpulan sambungan pangkalan data dalam thinkphp

1 Tambahkan kandungan berikut pada fail konfigurasi aplikasi

return [ //数据库配置信息 'database' => [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'test', // 用户名 'username' => 'root', // 密码 'password' => '', // 端口 'hostport' => '', // 数据库连接参数 'params' => [ // 数据库连接池配置 \think\helper\Arr::except(\Swoole\Coroutine::getContext(),'__timer'), ], // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'think_', ], ];
Salin selepas log masuk

2 file index.php

use think\App; use think\facade\Config; use think\facade\Db; use think\swoole\Server; use think\swoole\websocket\socketio\Handler; use think\swoole\websocket\Websocket; use think\swoole\websocket\socketio\Packet; use think\swoole\coroutine\Context; use Swoole\Database\PDOPool; use Swoole\Coroutine\Scheduler; //定义应用目录 define('APP_PATH', __DIR__ . '/app/'); // 加载框架引导文件 require __DIR__ . '/thinkphp/vendor/autoload.php'; require __DIR__ . '/thinkphp/bootstrap.php'; // 扩展Loader注册到自动加载 \think\Loader::addNamespace('swoole', __DIR__ . '/thinkphp/library/swoole/'); // 初始化应用 App::getInstance()->initialize(); //获取数据库配置信息 $dbConfig = Config::get('database'); //创建数据库连接池 $pool = new PDOPool($dbConfig['type'], $dbConfig); //设置连接池的参数 $options = [ 'min' => 5, 'max' => 100, ]; $pool->setOptions($options); //连接池单例模式 Context::set('pool', $pool); //启动Swoole server $http = (new Server())->http('0.0.0.0', 9501)->set([ 'enable_static_handler' => true, 'document_root' => '/data/wwwroot/default/public/static', 'worker_num' => 2, 'task_worker_num' => 2, 'daemonize' => false, 'pid_file' => __DIR__.'/swoole.pid' ]); $http->on('WorkerStart', function (swoole_server $server, int $worker_id) { //功能实现 }); $http->start();
Salin selepas log masuk

Fungsi kod di atas adalah untuk membina kumpulan sambungan PDOPool dan menetapkan bilangan sambungan minimumnya kepada 5 dan bilangan sambungan maksimumnya kepada 100. Gunakan Konteks untuk menyimpan kumpulan sambungan dalam memori untuk digunakan oleh aplikasi thinkphp lanjutan.

3. Cara menggunakan kolam sambungan

Dalam proses menggunakan kolam sambungan, anda perlu memberi perhatian kepada perkara berikut:

  1. Kes tunggal mod kolam sambungan, fungsi berbeza menggunakan objek kolam sambungan yang sama untuk memastikan ketekalan parameter kolam sambungan.

  2. Jangan tutup MySQL serta-merta selepas menjalankan operasi pangkalan data, tetapi kembalikannya terus ke kolam sambungan. Kerana sambungan sebenarnya dimasukkan semula ke dalam kolam sambungan, bukan ditutup.

  3. Jangan anggap kolam sambungan sebagai "badan abadi", ia juga perlu dilepaskan Kaedah untuk melepaskan kolam sambungan ialah: $pool->close().

Berikut ialah contoh penggunaan pengumpulan sambungan:

getConnection(); //执行操作 $result = $connection->query('SELECT * FROM `user`'); //归还连接给连接池 $pool->putConnection($connection); //返回结果 return json($result); } }
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimana untuk mengkonfigurasi kumpulan sambungan pangkalan data dalam thinkphp. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!