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.
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(['name', 'age', 'email']) ->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!