Saya sedang menulis projek yang berkaitan dengan pemerolehan data secara besar-besaran. Pada masa ini saya menggunakan .NET Framework 4.8 dan pakej Mysql untuk memulakan sambungan dan memasukkan data ke dalam pelayan pangkalan data.
Saya akan memasukkan sekitar 400,000 baris/saat. Saya bimbang sambungan SQL mungkin menjadi halangan untuk program saya. Saya ingin tahu sama ada saya menggunakan sql untuk membuat sambungan berbilang benang dan menggunakan baris gilir pengguna untuk memasukkan data, adakah ia lebih pantas dan berbaloi (kebaikan dan keburukan)?
Dalam usus saya ia akan menjadi lebih pantas, tetapi saya tidak pasti berapa banyak prestasi yang akan diberikan dari segi overhed benang. Saya bukan pakar SQL, jadi alangkah baiknya jika seseorang dapat menerangkan kebaikan dan keburukan membuka berbilang sambungan ke SQL pada berbilang benang.
Khabar angin, pendapat, khabar angin, fakta, penanda aras berkaitan versi, beberapa pengalaman peribadi, dll...
Berbilang rangkaian boleh meningkatkan daya pengeluaran, tetapi terdapat had:
Pemprosesan kelompok:
LOAD DATA
是一次从单个线程INSERT
大量行的最快方法。但是,如果您包括将文件写入LOAD
kos, yang mungkin menjadikannya lebih perlahan daripada sisipan kelompok.INSERT
mengikuti. Tetapi ia dihadkan pada "ratusan" baris apabila had tertentu atau "pulangan berkurangan" dicapai.INSERT
查询插入一行的速度的 10 倍。因此,它(或LOAD DATA
pertanyaan. Oleh itu, ia (atauLOAD DATA
) berbaloi untuk digunakan untuk pengingesan berkelajuan tinggi. (Sumber: Banyak berbeza ujian bermasa.)Sumber data:
Apakah yang berlaku selepas memuatkan data? Sudah tentu, ini bukan jadual tulis sahaja.
PARTITIONing
Jarang berguna, selain akhirnya memadamkan data lama. Lihat Partition