Cara Upload Banyak Data Sekaligus Dengan Laravel

Cara Upload Banyak Data Sekaligus Dengan Laravel.Pada tutorial kali ini kita akan membandingkan dua cara pertama menggunakan fungsi mysql LOAD DATA LOCAL dan yang kedua package composer league/csv.Cara pertama adalah yang paling cepat ,yang ada saat i…

Cara Upload Banyak Data Sekaligus Dengan Laravel.Pada tutorial kali ini kita akan membandingkan dua cara pertama menggunakan fungsi mysql LOAD DATA LOCAL dan yang kedua package composer league/csv.Cara pertama adalah yang paling cepat ,yang ada saat ini untuk import csv ukuran besar.

Tetapi terkadang hosting tidak support untuk cara pertama,terutama yang bersifat shared hosting dengan alasan keamanan ucap support hosting.Jadi karena kemaren team medanincode juga terkena kendala kita cari alternatif lain yang sudah dicoba dan lumayan cepat ,menggunakan package league/csv.

Disini kita juga akan membandingkan kecepatan keduanya.Untuk membandingkan kita punya file csv dengan format seperti dibawah ini ,dengan jumlah data 100.000 baris.Kita akan mengukur kecepatan insert dengan menggunakan LOAD DATA LOCAL dan package league/csv.

Big data 1



LOAD DATA LOCAL INFILE

Untuk mengecheck apakah hosting kita support LOAD DATA LOCAL,bisa tulis query dibawah ini di phpmyadmin atau sejenisnya.

SHOW GLOBAL VARIABLES LIKE 'local_infile';

Dan pastikan juga settingan di config/database.php bagian connections mysql pada options ada perintah seperti dibawah ini.

<?php
....
'options'        => extension_loaded('pdo_mysql') ? array_filter([
    PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
    PDO::MYSQL_ATTR_LOCAL_INFILE => true,
]) : [],

Untuk penggunaannya LOAD DATA LOCAL di laravel seperti code dibawah ini.

<?php
....
public function store_load(Request $request){
        $pathname = $request->file('report_file')->getPathName();
        $query = '
            LOAD DATA LOCAL INFILE "'.$pathname.'"
            INTO TABLE persons
            FIELDS TERMINATED by \',\'
            OPTIONALLY ENCLOSED BY \'"\'
            LINES TERMINATED BY \'\n\'
            IGNORE 1 LINES
            (@col1,@col2,@col3) 
            set 
            nama="@col1",umur="@col2",jk="@col3"';
        $time_start = microtime(true); 
        $result  = DB::statement($query);
        $time_end = microtime(true);
        $execution_time = ($time_end - $time_start);
        echo '<b>Total Execution Time:</b> '.($execution_time).' seconds';
    }

@col1 sampai @col3 adalah jumlah dari kolom yang akan kita ambil dari csv.FIELDS TERMINATED by adalah jenis separator yang digunakan oleh file csv. IGNORE 1 LINES untuk skip baris pertama dari file csv ,karena hanya berisi judul baris.



league/csv

League/csv sendiri adalah salah satu package untuk mengolah csv di php untuk informasi lebih bisa kunjungi di (https://csv.thephpleague.com/).
Untuk instalasinya sama seperti package composer lainnya.

composer require league/csv

Untuk penggunaannya ,pertama tambahkan script dibawah di bagian atas.

…..

Untuk versi lengkap tutorial kunjungi https://medanincode.com.
Originally published at https://medanincode.com.


Print Share Comment Cite Upload Translate
APA
MedanInCode | Sciencx (2024-03-29T13:54:13+00:00) » Cara Upload Banyak Data Sekaligus Dengan Laravel. Retrieved from https://www.scien.cx/2021/09/27/cara-upload-banyak-data-sekaligus-dengan-laravel/.
MLA
" » Cara Upload Banyak Data Sekaligus Dengan Laravel." MedanInCode | Sciencx - Monday September 27, 2021, https://www.scien.cx/2021/09/27/cara-upload-banyak-data-sekaligus-dengan-laravel/
HARVARD
MedanInCode | Sciencx Monday September 27, 2021 » Cara Upload Banyak Data Sekaligus Dengan Laravel., viewed 2024-03-29T13:54:13+00:00,<https://www.scien.cx/2021/09/27/cara-upload-banyak-data-sekaligus-dengan-laravel/>
VANCOUVER
MedanInCode | Sciencx - » Cara Upload Banyak Data Sekaligus Dengan Laravel. [Internet]. [Accessed 2024-03-29T13:54:13+00:00]. Available from: https://www.scien.cx/2021/09/27/cara-upload-banyak-data-sekaligus-dengan-laravel/
CHICAGO
" » Cara Upload Banyak Data Sekaligus Dengan Laravel." MedanInCode | Sciencx - Accessed 2024-03-29T13:54:13+00:00. https://www.scien.cx/2021/09/27/cara-upload-banyak-data-sekaligus-dengan-laravel/
IEEE
" » Cara Upload Banyak Data Sekaligus Dengan Laravel." MedanInCode | Sciencx [Online]. Available: https://www.scien.cx/2021/09/27/cara-upload-banyak-data-sekaligus-dengan-laravel/. [Accessed: 2024-03-29T13:54:13+00:00]
rf:citation
» Cara Upload Banyak Data Sekaligus Dengan Laravel | MedanInCode | Sciencx | https://www.scien.cx/2021/09/27/cara-upload-banyak-data-sekaligus-dengan-laravel/ | 2024-03-29T13:54:13+00:00
https://github.com/addpipe/simple-recorderjs-demo