五月天激情丁香,国产精品2019,国产成人精品亚洲2020,国产精品免费视频一区二区三区,开心久久婷婷综合中文字幕,天堂视频在线观看免费完整版

FastDb 類使用

調用方法說明

addDb

用于注冊連接池。

<?php
$config = new \EasySwoole\FastDb\Config([
    'name'              => 'default',    // 設置 連接池名稱,默認為 default
    'host'              => '127.0.0.1',  // 設置 數據庫 host
    'user'              => 'easyswoole', // 設置 數據庫 用戶名
    'password'          => 'easyswoole', // 設置 數據庫 用戶密碼
    'database'          => 'easyswoole', // 設置 數據庫庫名
    'port'              => 3306,         // 設置 數據庫 端口
    'timeout'           => 5,            // 設置 數據庫連接超時時間
    'charset'           => 'utf8',       // 設置 數據庫字符編碼,默認為 utf8
    'autoPing'          => 5,            // 設置 自動 ping 客戶端鏈接的間隔
    'useMysqli'         => false,        // 設置 不使用 php mysqli 擴展連接數據庫
    // 配置 數據庫 連接池配置,配置詳細說明請看連接池組件 http://www.fe88.cn/Components/Pool/introduction.html
    // 下面的參數可使用組件提供的默認值
    'intervalCheckTime' => 15 * 1000,    // 設置 連接池定時器執行頻率
    'maxIdleTime'       => 10,           // 設置 連接池對象最大閑置時間 (秒)
    'maxObjectNum'      => 20,           // 設置 連接池最大數量
    'minObjectNum'      => 5,            // 設置 連接池最小數量
    'getObjectTimeout'  => 3.0,          // 設置 獲取連接池的超時時間
    'loadAverageTime'   => 0.001,        // 設置 負載閾值
]);
// 或使用對象設置屬性方式進行配置
// $config->setName('default');
// $config->setHost('127.0.0.1');
FastDb::getInstance()->addDb($config);

testDb

用于測試連接池的數據庫配置是否可用。

FastDb::getInstance()->testDb();
FastDb::getInstance()->testDb('read');
FastDb::getInstance()->testDb('write');

setOnQuery

設置連接池連接執行 SQL 查詢時的回調,可用于監聽 SQL,可查看監聽 SQL 章節。

<?php
FastDb::getInstance()->setOnQuery(function (\asySwoole\FastDb\Mysql\QueryResult $queryResult) {
    // 打印 sql
    if ($queryResult->getQueryBuilder()) {
        echo $queryResult->getQueryBuilder()->getLastQuery() . "\n";
    } else {
        echo $queryResult->getRawSql() . "\n";
    }
});

invoke

可用于執行數據庫操作。

在高并發情況下,資源浪費的占用時間越短越好,可以提高程序的服務效率。

ORM 默認情況下都是使用 defer 方法獲取 pool 內的連接資源,并在協程退出時自動歸還,在此情況下,在帶來便利的同時,會造成不必要資源的浪費。

我們可以使用 invoke 方式,讓 ORM 查詢結束后馬上歸還資源,可以提高資源的利用率。

<?php
$builder = new \EasySwoole\Mysqli\QueryBuilder();
$builder->raw('select * from user');
$result = FastDb::getInstance()->invoke(function (\EasySwoole\FastDb\Mysql\Connection $connection) use ($builder) {
    $connection->query($builder);
    return $connection->rawQuery("select * from user");
});

begin

啟動事務。

FastDb::getInstance()->begin();

commit

提交事務。

FastDb::getInstance()->commit();

rollback

回滾事務。

FastDb::getInstance()->rollback();

query

自定義 SQL 執行。

$builder = new \EasySwoole\Mysqli\QueryBuilder();
$builder->raw("select * from user where id = ?", [1]);
FastDb::getInstance()->query($builder);

原生 SQL 表達式將會被當做字符串注入到查詢中,因此你應該小心使用,避免創建 SQL 注入的漏洞。

rawQuery

自定義 SQL 執行。

FastDb::getInstance()->rawQuery('select * from user where id = 1');

原生 SQL 表達式將會被當做字符串注入到查詢中,因此你應該小心使用,避免創建 SQL 注入的漏洞。

currentConnection

獲取當前所用的連接。

FastDb::getInstance()->currentConnection();

reset

銷毀所有連接池。

FastDb::getInstance()->reset();

preConnect

用于預熱連接池。

為了避免連接空檔期突如其來的高并發,我們可以對數據庫連接預熱,也就是 Worker 進程啟動的時候,提前準備好數據庫連接。

對連接進行預熱使用示例如下所示:

<?php

namespace EasySwoole\EasySwoole;

use EasySwoole\EasySwoole\AbstractInterface\Event;
use EasySwoole\EasySwoole\Swoole\EventRegister;
use EasySwoole\FastDb\FastDb;

class EasySwooleEvent implements Event
{
    public static function initialize()
    {
        date_default_timezone_set('Asia/Shanghai');

        $mysqlArrayConfig = Config::getInstance()->getConf('MYSQL');
        $config = new \EasySwoole\FastDb\Config($mysqlArrayConfig);
        FastDb::getInstance()->addDb($config);
    }

    public static function mainServerCreate(EventRegister $register)
    {
        $register->add($register::onWorkerStart, function () {
            // 連接預熱
            FastDb::getInstance()->preConnect();
        });
    }
}

isInTransaction

當前連接是否處于事務中。

FastDb::getInstance()->isInTransaction();

getConfig

根據連接池名稱獲取當前連接池配置。

FastDb::getInstance()->getConfig();
FastDb::getInstance()->getConfig('read');
主站蜘蛛池模板: 美女网站免费福利视频 | 婷婷在线免费观看 | 九七电影院97网手机版支持 | 99久久综合国产精品免费 | 四虎成人精品国产一区a | 色爱区综合激月婷婷激情五月 | 久草综合在线视频 | 日韩精品中文字幕久久 | 成人免费观看男女羞羞视频 | 99久久国产免费中文无字幕 | 精品午夜视频 | 亚洲国产系列久久精品99人人 | 欧美色视频日本片免费高清 | 99精品99 | 日韩欧美视频一区 | 久久久一区二区三区不卡 | 3344永久在线观看视频免费 | 国产综合精品久久久久成人影 | 日产国语一区二区三区在线看 | 男人天堂一区 | 日韩avapp| 成人无遮挡毛片免费看 | 久久性综合亚洲精品电影网 | 国产精品久久国产精品99盘 | 91福利免费体验区观看区 | 乱码精品一区二区三区 | www.久久久| 精品樱空桃一区二区三区 | 久久亚洲国产精品 | 国产在线视频99 | 国产精品久久亚洲不卡动漫 | 四虎一区二区三区精品 | 精品免费久久久久久成人影院 | 一级毛片免费在线播放 | 四虎影视884a精品国产古代 | 国产成人app | 婷婷色网站 | 国产精品成人久久久久久久 | 日本在线一本 | 婷婷色香五月激情综合2020 | 天天噜噜揉揉狠狠夜夜 |