Rumah > Soal Jawab > teks badan
Apakah cara yang baik untuk menggunakan PHP untuk memproses fail SQLite yang sangat besar (berpuluh-puluh gigabait)
Ia baru sahaja mati apabila memprosesnya~~
ringa_lee2017-05-16 13:06:33
Fail sebesar itu tidak boleh diproses oleh PHP Untuk memproses fail, PHP mesti membacanya terlebih dahulu ke dalam memori, dan memori yang boleh digunakan oleh setiap skrip adalah berkaitan dengan had_memori dalam fail konfigurasi PHP. Selagi ingatan anda cukup besar, anda boleh menetapkannya kepada tidak terhad dan menggunakan memori maksimum sistem.
Penyelesaian yang disyorkan ialah potong fail kepada fail kecil dahulu, gunakan program shell seperti sed untuk memotong fail kepada beberapa fail kecil mengikut saiz tertentu (saiz ditentukan mengikut saiz memori PHP anda), dan kemudian proses ia dengan PHP.
世界只因有你2017-05-16 13:06:33
Baca baris demi baris, PHP mempunyai fungsi ini, ia membaca 3 baris pada satu masa, tetapi SQLite adalah pangkalan data tempatan, dan membaca adalah masalah pemandu sekali gus
阿神2017-05-16 13:06:33
Data hendaklah dipindahkan ke MYSQL dan kemudian diberikan kepada PHP untuk membaca dan menulis. SQLite pada asalnya adalah pangkalan data fail kecil dengan keupayaan rendah untuk mengendalikan data yang besar.
大家讲道理2017-05-16 13:06:33
Terkejut! Untuk jumlah data yang begitu besar, sqlite masih digunakan.
Selain itu, jika anda membaca berpuluh-puluh gigabait ke dalam memori pada satu masa, melainkan jika ingatan anda benar-benar mempunyai berpuluh-puluh gigabait, ia pasti akan memecahkan ingatan.
Adalah disyorkan untuk mencuba memisahkan pangkalan data ini atau menukarnya kepada jenis pemprosesan pangkalan data lain.
过去多啦不再A梦2017-05-16 13:06:33
Pemprosesan teks PHP tidak sesuai dan sangat perlahan. Penyelesaian pemprosesan selepas memasuki mysql boleh dilaksanakan, tetapi ia lebih memakan masa.
Rujukan Gunakan untuk menyemak
世界只因有你2017-05-16 13:06:33
Saya tidak faham sqlite, tetapi pasti sukar untuk memproses terus fail yang begitu besar. Tetapi ada idea umum. Hanya membongkar. Ikut perpustakaan. Tonton atau sesuatu.
高洛峰2017-05-16 13:06:33
Memandangkan ia adalah fail sqlite, cuma klik Pangkalan Data Baca->Proses->Storan PHP boleh menggunakan sqlite secara lalai.
曾经蜡笔没有小新2017-05-16 13:06:33
Tukar sqlite kepada Mysql, kemudian optimumkan indeks, dan sepatutnya tiada masalah.