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

So exportieren Sie schnell Millionen von Daten in CSV in PHP

醉折花枝作酒筹
Freigeben: 2023-03-10 22:42:02
nach vorne
3039 Leute haben es durchsucht

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;
Nach dem Login kopieren

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;
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage