sohris / reactphp-mysql
基于ReactPHP的MySQL数据库异步和并行连接的仓库
0.1.1
2024-08-12 21:43 UTC
Requires
- php: ^8.0
- react/event-loop: ^1.5
- react/promise: ^3.2
Requires (Dev)
- phpunit/phpunit: ^11.3
README
ReactPHP MySQL是一个提供异步连接到MySQL数据库的包,使高性能操作的非阻塞执行成为可能。利用事件驱动模型,它允许创建一个连接池,其中建立了多个数据库连接线程。这可以实现脚本的并行执行和查询,优化处理和操作效率。
特性
- 异步连接:非阻塞的MySQL连接,以增强性能。
- 并行查询池:同时执行多个查询以提高效率。
安装
使用PHP Composer
compose require sohris/reactphp-mysql
用法
简单用法
创建单个数据库连接并执行一个查询。
require 'vendor/autoload.php'; $user = "user"; $password = "pass"; $host = "host"; $port = 3306; //Create a new Connection $connector = Sohris\Mysql\Connector\Factory::create($user, $password, $host, $port); //Or //Create a new lazy Connection $connector = Sohris\Mysql\Connector\Factory::createLazyConnection($user, $password, $host, $port); //Or //To force a new connection, use a createLazyNewConnector $connector = Sohris\Mysql\Connector\Factory::createLazyNewConnector($user, $password, $host, $port); $connector->query("SELECT * FROM information_schema.ROUTINES Limit 1") ->then(function(Sohris\Mysql\Io\QueryResult $result){ var_dump($result->resultRows); }, function(Exception $e){ var_dump($e->getMessage()); });
池使用
Pool连接提供更多数据库连接,允许在数据库中进行并行研究。与简单用法不同,要执行新查询,请使用Pool类中的exec方法。
require __DIR__."/../vendor/autoload.php"; $user = "user"; $password = "pass"; $host = "host"; $port = 3306; //Create a connection $connector = new \Sohris\Mysql\Pool($user, $password, $host, $port); $connector->exec("SELECT * FROM information_schema.ROUTINES Limit 1") ->then(function(Sohris\Mysql\Io\QueryResult $result){ echo "Result 1" . PHP_EOL; }, function(Exception $e){ var_dump($e->getMessage()); });
要配置数据库连接的最大线程数,请使用Pool类中的setPoolSize方法来设置限制。
$connector->setPoolSize(2);
许可证
本项目采用MIT许可证 - 有关详细信息,请参阅LICENSE文件。