Batas penyisipan MySQL?

Saya memiliki skrip php yang mengambil csv dan mengimpornya ke tabel mysql. Saya telah melakukan beberapa tes dan menemukan bahwa skrip hanya memasukkan 999 baris dalam satu waktu. Apakah ada batasannya dan jika ya, di mana? MySQL atau php? Misalnya, jika saya menggunakan file csv dengan 2500 baris, hanya 999 baris pertama yang akan dimasukkan. saya bingung. Saya telah menetapkan parameter php berikut ke nilai yang cukup besar:

php_value upload_max_filesize 999M
php_value post_max_size 999M
php_value max_execution_time 900
php_value max_input_time 900

Saya tidak yakin apa yang menyebabkan perilaku ini. Saya merasa formulir html terpotong meskipun saya telah menyetel post_max_size ke angka yang sangat besar; Saya mengatakan ini karena ketika saya meletakkan tombol radio di akhir formulir panjang, tombol radio itu tidak diteruskan ke array $_POST pada langkah berikutnya.


SELESAI

Oke teman-teman, terima kasih sudah mencoba membantu. Saya sedang menggali log dan menemukan masalahnya. Seperti yang saya duga, array $_POST terpotong. Saya melihat log php dan menemukan entri ini:

Feb 17 17:12:54 workpc suhosin[3895]: ALERT - configured POST variable limit exceeded - dropped variable 'selected[]' (attacker '192.168.0.175', file '/var/www/html/sandbox/index.php')

Meskipun saya telah meningkatkan post_max_size di php, itu tidak cukup. Jadi, saya harus mengubah dua parameter ini di /etc/php5/conf.d/suhosin.ini

suhosin.post.max_vars = 1000
suhosin.request.max_vars = 1000

Saya meningkatkan nilainya dan itu berhasil. Semua ~3000 baris diimpor.


person Sparctus    schedule 17.02.2012    source sumber
comment
Tolong tunjukkan kami beberapa kode, ini kemungkinan besar disebabkan oleh cara Anda mengkodekan impor Anda. Ada batasan penyisipan dalam format yang tidak diperluas, tetapi orang jarang menggunakan sintaksis itu...   -  person Mathieu Dumoulin    schedule 18.02.2012
comment
Berapa nilai kenaikan_otomatis maksimum atau ukuran bidang maksimum kenaikan_otomatis? Apakah skripnya berhenti dengan cepat? Jika Anda menjalankannya melalui loop, apakah Anda mendapatkan mysql_error() ?   -  person MyStream    schedule 18.02.2012
comment
Tambahkan beberapa kode. Sangat sulit untuk mengatakan apa pun tanpa melihat kodenya.   -  person Tarandeep Gill    schedule 18.02.2012
comment
penting untuk mengubah suhosin.post.max_vars & suhosin.request.max_vars menjadi nilai yang identik - mengubah nilai untuk post saja akan tetap memberikan kesalahan POST variable limit exceeded yang sama tidak peduli seberapa tinggi Anda menetapkan nilainya   -  person Stuart Cardall    schedule 30.03.2018


Jawaban (1)


Saya kira tidak ada batasan pada impor CSV tetapi saya akan menggunakan sesuatu seperti ini untuk mengimpor data dari CSV

LOAD DATA INFILE 'mydata.csv' INTO TABLE YOUR_TABLE FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES TERMINATED BY '\r\n';
person Jaspreet Chahal    schedule 17.02.2012