成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

PHP利用PDO從mysql讀取大量數(shù)據(jù)處理(可做大量數(shù)據(jù)集的導(dǎo)出,業(yè)務(wù)調(diào)整等)

宋華 / 946人閱讀

摘要:環(huán)境適用場(chǎng)景需要處理一定數(shù)據(jù)集業(yè)務(wù)從讀取一定數(shù)據(jù)的業(yè)務(wù)導(dǎo)出一次需要處理一定的業(yè)務(wù)操作更新刪除等更多需要處理一定數(shù)據(jù)集的操作關(guān)鍵設(shè)置關(guān)鍵設(shè)置,如果不設(shè)置,依舊會(huì)從一次取出數(shù)據(jù)到里的游標(biāo)屬性不是必須的生成器生成器,迭代數(shù)據(jù)操作本生成器可

環(huán)境

mysql: 5.6.34
php: 5.6
nginx: php-fpm

適用場(chǎng)景
需要處理一定數(shù)據(jù)集業(yè)務(wù)

從mysql讀取一定數(shù)據(jù)的業(yè)務(wù)導(dǎo)出

一次需要處理一定的mysql業(yè)務(wù)操作更新刪除等

更多需要處理一定數(shù)據(jù)集的操作

pdo 關(guān)鍵設(shè)置
$dbh = new PDO($dsn, $user, $pass);
# 關(guān)鍵設(shè)置,如果不設(shè)置,php依舊會(huì)從pdo一次取出數(shù)據(jù)到php
$dbh->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
//perpare里的游標(biāo)屬性不是必須的
$sth = $dbh->prepare("SELECT * FROM `order`", array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$sth->execute();
生成器
生成器,迭代數(shù)據(jù)操作
本生成器可省略
嘗試代碼
class Test {
    public function test()
    {
        set_time_limit(0);
        $dbms="mysql";     //數(shù)據(jù)庫(kù)類型
        $host=C("DB_HOST"); //數(shù)據(jù)庫(kù)主機(jī)名
        $dbName=C("DB_NAME");    //使用的數(shù)據(jù)庫(kù)
        $user=C("DB_USER");      //數(shù)據(jù)庫(kù)連接用戶名
        $pass=C("DB_PWD");          //對(duì)應(yīng)的密碼
        $dsn="$dbms:host=$host;dbname=$dbName";
        $dbh = new PDO($dsn, $user, $pass);
        $dbh->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
        $sth = $dbh->prepare("SELECT * FROM `order`");
        $sth->execute();
        $i = 0;

        $newLine = PHP_SAPI == "cli" ? "
" : "
"; foreach ($this->cursor($sth) as $row) { // var_dump($row); echo $row["id"] . $newLine; $i++; } echo "消耗內(nèi)存:" . (memory_get_usage() / 1024 / 1024) . "M" . $newLine; echo "處理數(shù)據(jù)行數(shù):" . $i . $newLine; echo "success"; } public function cursor($sth) { while($row = $sth->fetch(PDO::FETCH_ASSOC)) { yield $row; } } } $test = new Test(); $test->test();
輸出
1
... //省略部分id
804288
消耗內(nèi)存:"0.34918212890625M
處理數(shù)據(jù)行數(shù):254062
success

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/28386.html

相關(guān)文章

  • PHP+MySQL導(dǎo)出大量數(shù)據(jù)(Iterator yield)

    摘要:開(kāi)發(fā)中經(jīng)常遇到這樣的場(chǎng)景產(chǎn)品汪我要在后臺(tái)做一個(gè)功能,可以導(dǎo)出自定義時(shí)間范圍的訂單信息。結(jié)果,第二天一上班產(chǎn)品汪過(guò)來(lái)就是拍桌子,我想把去年一整年的訂單都導(dǎo)出來(lái),結(jié)果后臺(tái)直接就掛了開(kāi)發(fā)小哥一查,原來(lái)是內(nèi)存溢出了,一年下來(lái)的的訂單量足足有條。 開(kāi)發(fā)中經(jīng)常遇到這樣的場(chǎng)景 產(chǎn)品汪:我要在后臺(tái)做一個(gè)功能,可以導(dǎo)出自定義時(shí)間范圍的訂單信息。開(kāi)發(fā)小哥二話不說(shuō),半天就把功能做完并上線了。結(jié)果,第二天一上...

    codergarden 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<