adakah cara terbaik Update data ?


horasjey

Poster 2.0
Hallo,
izin buat diskusi terkait metode terbaik untuk update data ,

dari pengalaman tuan-tuan ,menggunakan metode apa yang paling cepat untuk update data yang besar?

di sini saya terpikir menggunakan metode php dengan data format json
PHP:
<?php

// Nama file JSON
$namaFileJson = 'data.json';

// Data yang ingin ditambahkan
$dataBaru = array(
    'nama' => 'John Doe',
    'usia' => 25,
    'pekerjaan' => 'NOC'
);

// Mengecek apakah file JSON sudah ada atau tidak
if (file_exists($namaFileJson)) {
    // Jika file sudah ada, membaca data JSON yang sudah ada
    $jsonFile = file_get_contents($namaFileJson);
    $data = json_decode($jsonFile, true);
} else {
    // Jika file belum ada, membuat array kosong
    $data = array();
}

// Menambahkan data baru ke dalam array
$data[] = $dataBaru;

// Mengonversi kembali array ke format JSON
$jsonData = json_encode($data, JSON_PRETTY_PRINT);

// Menyimpan data kembali ke dalam file JSON
file_put_contents($namaFileJson, $jsonData);

echo 'Data berhasil ditambahkan ke dalam file JSON.';

?>

di code ini saya mengalami masalah, di mana ketika data json sudah besar ( dengan ukuran file json 5Mb) membuat kerja menjadi lambat di karenakan script php messti membaca data lama dulu baru mengupdate data baru,


kira -kira ada tidak metode agar bisa update data tampa membaca data yang sudah ada, sehingga proses update data menjadi lebih cepat dan tidak membebani backend Server ?
NB : tidak harus program PHP, jika ada program lain dan emng terbukti lebih baik dari php maka saya akan mencoba mempelajari bahasa program tersebut (ada dapat info katanya golang cepat dalam hal membaca data yang besar, nah apakah golang juga cepat dalam mengupdate data..?)


o-que-e-big-data-1-1024x679.jpg

Terima kasih
 

horasjey

Poster 2.0
echo 'data baru' >> /path/file.txt
Wuih, ini berfungsi pak,
1702227038874.png
1702227198006.png
tapi tidak berfungsi di data json saya,

jadi error respound jsonya
1702227051412.png

butuh di kembangin lagi agar terarray echo dari bash nya,
kira-kira ada cara agar data nya terupdate array di dalam pak supaya saat di accses data jsonnya tidak error..?

Tuan, ini maksudnya mengupdate data ke dalam file json? data dari mana?
maksudnya data dari mana seperti apa ini tuan..?


jika database nya maka
untuk data.json masih di 1 mesin dan 1 directory,
niatnya saya mau mengungrangi delay proses pengambilan data json dari direcroty untuk update data.json

karena saya sudah coba-coba cari cara untuk update data json harus ada proses pengambilan data json dulu agar bisa di update dengan data baru

menghilangkan code ini
PHP:
// Mengecek apakah file JSON sudah ada atau tidak
if (file_exists($namaFileJson)) {
    // Jika file sudah ada, membaca data JSON yang sudah ada
    $jsonFile = file_get_contents($namaFileJson);
    $data = json_decode($jsonFile, true);
} else {
    // Jika file belum ada, membuat array kosong
    $data = array();
}

jika saya jalankan tampa code itu, data lama hilang, dan hanya data baru yg tersimpan di json,


trick dari pak @AsiaVM sudah benar, namun ada kendala di sturktur Json nya :20: :peace:
 

reyokh

Beginner 2.0
Code:
<?php
$file    = "data.json";

$data["nama"]    = "tes1";
$data["note"]    = "hanya tes #1";

if (@file_exists(@$file)) {
    $ch    = @fopen(@$file,'r+');
} else {
    $ch    = @fopen(@$file,'w+');
}

if (@$ch) {
    //pointing ke akhir data
    @fseek(@$ch,0,SEEK_END);
    //jika ada data
    if (@ftell(@$ch)>0) {
        //pindah 1 pointing sebelumnya
        @fseek(@$ch,-1,SEEK_END);
        //tambahkan (,) koma untuk penghubung json selanjutnya
        @fwrite(@$ch,',',1);
        //tambahkan json baru diakhiri (]) akhir array
        @fwrite(@$ch,@json_encode(@$data,JSON_PRETTY_PRINT).']');
    } else {
        //jika kosong, simpan json apa adanya
        @fwrite(@$ch,@json_encode(@array(@$data),JSON_PRETTY_PRINT));
    }
    @fclose(@$ch);
}
?>
 

reyokh

Beginner 2.0
fopen bukannya sama dengan file_get_content yach Tuan...?
sudah dicoba Om ?

baiknya dites dgn ukuran 5mb yang dimaksud (tentunya dgn salinan lain), biar ketahuan apakah ada perbedaan atau tidak untuk performanya
 

Top