연결 풀 정의: 절대로 연결을 끊지 마십시오. 프로그램이 메모리 상주 프로그램이어야 합니다. 데이터베이스 연결 풀링(Connection pooling)은 프로그램 시작 실행 시 충분한 데이터베이스 연결을 설정하고 이러한 연결을 연결 풀로 형성하면 프로그램이 풀에서 연결을 동적으로 적용, 사용 및 해제합니다.
연결 풀링 구현 방법:
동기화 차단 모드:
연결 풀은 swoole의 AsyncTask 모듈을 기반으로 구현될 수 있으며 프로그래밍이 간단하고 데이터 동기화 및 잠금 문제가 없습니다. 연결 풀은 여러 서비스에서 공유될 수도 있습니다. 단점은 다음과 같습니다. 1. 멀티스레드 연결 풀만큼 유연하지 않으며 연결을 동적으로 늘리거나 줄일 수 없습니다. 2. 프로세스 간 통신에 오버헤드가 있습니다.
코루틴 모드:
채널을 사용하여 구현할 수 있습니다. 연결 풀.
10개의 mysql 연결 샘플 코드 생성:
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2018/11/20 * Time: 14:12 */ //编写mysql连接池,这个类只能被实例化一次(单例) class MysqlConnectionPool { private static $instance;//单例对象 private $connection_num = 10;//连接数量 private $connection_obj = []; //构造方法连接mysql,创建20mysql连接 private function __construct() { for($i=0;$i<$this->connection_num;$i++){ $dsn = "mysql:host=127.0.0.1;dbnane=swoole"; $this->connection_obj[] = new Pdo($dsn,'root','rootmysql123'); } } private function __clone() { // TODO: Implement __clone() method. } public static function getInstance() { if(is_null(self::$instance)){ self::$instance = new self(); } } } MysqlConnectionPool::getInstance(); //创建swool的http服务器对象 $serv = new swoole_http_server('0.0.0.0',8000); //当浏览器链接点这个http服务器的时候,向浏览器发送helloworld $serv->on('request', function($request,$response){ //$request包含这个请求的所有信息,比如参数 //$response包含返回给浏览器的所有信息,比如helloworld //(2.3)向浏览器发送helloworld $response->end("hello world"); }); //启动http服务器 $serv->start();
Effect
추천 학습: swoole 튜토리얼
위 내용은 swoole을 사용하여 mysql 연결 풀을 만드는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!