Heim  >  Artikel  >  Backend-Entwicklung  >  So exportieren Sie schnell Millionen von Daten in CSV in PHP

So exportieren Sie schnell Millionen von Daten in CSV in PHP

醉折花枝作酒筹
醉折花枝作酒筹nach vorne
2021-06-28 15:48:523001Durchsuche

In PHP können Sie den Cache des Servers verwenden, um CSV mit Millionen von Daten schnell zu exportieren. Sie können darauf zurückgreifen, wenn Sie es benötigen.

So exportieren Sie schnell Millionen von Daten in CSV in PHP

php realisiert Millionen von Datenexporten.

Implementierung:

1: Testtabelle erstellen und Testdaten hinzufügen

Hier habe ich gebaut Eine Testtabelle, die Felder sind: ID, Name, Alter, E-Mail

2: Testdaten hinzufügen

(1) Fügen Sie zunächst manuell mehrere Datenzeilen zur Tabelle hinzu

Führen Sie dann den folgenden Befehl aus, um Daten stapelweise hinzuzufügen

INSERT INTO test (name,age,email) SELECT name,age,email FROM test;

Mehrmals ausführen Die oben genannten Befehlstestdaten nehmen exponentiell zu, sodass Sie viele Testdaten erhalten können

Zweitens: PHP implementiert den Export von Millionen von Daten (mein Abfragebefehl hier ist der Abfragebefehl, der mit dem Yii-Framework geliefert wird)

//让程序一直运行
set_time_limit(0);
//设置程序运行内存
ini_set('memory_limit', '128M');
//导出文件名
$fileName = '测试导出数据';
header('Content-Encoding: UTF-8');
header("Content-type:application/vnd.ms-excel;charset=UTF-8");
header('Content-Disposition: attachment;filename="' . $fileName . '.csv"');
//打开php标准输出流
$fp = fopen('php://output', 'a');
//添加BOM头,以UTF8编码导出CSV文件,如果文件头未添加BOM头,打开会出现乱码。
fwrite($fp, chr(0xEF).chr(0xBB).chr(0xBF));
//添加导出标题
fputcsv($fp, ['姓名', '岁数', '邮箱']);
$nums = 10000; //每次导出数量
$count = Test::find()->count();
$step = ceil($count/$nums);//循环次数
for($i = 0; $i < $step; $i++) {
    $result = Test::find()
        ->select([&#39;name&#39;, &#39;age&#39;, &#39;email&#39;])
        ->limit($nums)
        ->offset($i * $nums)
        ->asArray()
        ->all();
    foreach ($result as $item) {
        fputcsv($fp, $item);
    }
    //每1万条数据就刷新缓冲区
    ob_flush();
    flush();
}
exit;

Testen Sie wie oben. Anschließend können Sie feststellen, dass der Export von etwa einer Million Daten nur etwa zehn Sekunden dauert, was ziemlich effizient ist

Das obige ist der detaillierte Inhalt vonSo exportieren Sie schnell Millionen von Daten in CSV in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen