在线看片18_亚洲性吧_在线污_神马午夜达达兔_奇米色网_在线免费看污

FastDb 類使用

調(diào)用方法說(shuō)明

addDb

用于注冊(cè)連接池。

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

testDb

用于測(cè)試連接池的數(shù)據(jù)庫(kù)配置是否可用。

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

setOnQuery

設(shè)置連接池連接執(zhí)行 SQL 查詢時(shí)的回調(diào),可用于監(jiān)聽(tīng) SQL,可查看監(jiān)聽(tīng) SQL 章節(jié)。

<?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

可用于執(zhí)行數(shù)據(jù)庫(kù)操作。

在高并發(fā)情況下,資源浪費(fèi)的占用時(shí)間越短越好,可以提高程序的服務(wù)效率。

ORM 默認(rèn)情況下都是使用 defer 方法獲取 pool 內(nèi)的連接資源,并在協(xié)程退出時(shí)自動(dòng)歸還,在此情況下,在帶來(lái)便利的同時(shí),會(huì)造成不必要資源的浪費(fèi)。

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

<?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

啟動(dòng)事務(wù)。

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

commit

提交事務(wù)。

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

rollback

回滾事務(wù)。

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

query

自定義 SQL 執(zhí)行。

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

原生 SQL 表達(dá)式將會(huì)被當(dāng)做字符串注入到查詢中,因此你應(yīng)該小心使用,避免創(chuàng)建 SQL 注入的漏洞。

rawQuery

自定義 SQL 執(zhí)行。

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

原生 SQL 表達(dá)式將會(huì)被當(dāng)做字符串注入到查詢中,因此你應(yīng)該小心使用,避免創(chuàng)建 SQL 注入的漏洞。

currentConnection

獲取當(dāng)前所用的連接。

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

reset

銷毀所有連接池。

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

preConnect

用于預(yù)熱連接池。

為了避免連接空檔期突如其來(lái)的高并發(fā),我們可以對(duì)數(shù)據(jù)庫(kù)連接預(yù)熱,也就是 Worker 進(jìn)程啟動(dòng)的時(shí)候,提前準(zhǔn)備好數(shù)據(jù)庫(kù)連接。

對(duì)連接進(jìn)行預(yù)熱使用示例如下所示:

<?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 () {
            // 連接預(yù)熱
            FastDb::getInstance()->preConnect();
        });
    }
}

isInTransaction

當(dāng)前連接是否處于事務(wù)中。

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

getConfig

根據(jù)連接池名稱獲取當(dāng)前連接池配置。

FastDb::getInstance()->getConfig();
FastDb::getInstance()->getConfig('read');
主站蜘蛛池模板: 六月激情综合 | 国产精久久久 | 国产精品av一区 | 欧美特级黄 | 成年人在线免费 | 日韩精品――色哟哟 | 黄色国产| 国产在线播放一区 | 欧美日韩国产中文 | 日韩资源在线观看 | www色中色 | 欧美在线一区二区三区四区 | 色天使在线视频 | 久久久免费网站 | 日本在线一级片 | 男女嘿咻嘿咻视频 | 成人免费视频入口 | 激情视频国产 | 综合网久久| 黄色av资源 | 欧美精品在线视频观看 | 日韩欧美三区 | 久久ww| 色综合久久久久久 | 97超碰人人 | 一级特黄aaa大片 | 少妇一区 | 日韩一区二区在线播放 | 丁香婷婷六月天 | 一区二区欧美在线 | 午夜国产小视频 | 欧美日韩一级大片 | 欧美三级在线视频 | 日韩激情视频在线观看 | 亚洲欧美另类在线观看 | 亚洲成年人在线观看 | 99热在线观看精品 | 日韩特黄毛片 | 久久精品在线观看 | 婷婷午夜天| 午夜肉体高潮免费毛片 |