Rumah > Soal Jawab > teks badan
Oleh kerana terdapat reka bentuk perniagaan yang menjana rekod dalam kelompok dan menjana 100,000 keping kandungan pada satu masa (kebanyakan kandungan adalah sama, dan beberapa medan perlu menjana kod rawak), apa yang perlu dilakukan
ringa_lee2017-06-05 11:09:07
Mereka yang bercakap tentang menggunakan asynchronous dan looping, saya secara peribadi berpendapat ia adalah tidak munasabah
Dengan 100,000 keping data, walaupun memori anda cukup besar, ia akan mengambil banyak masa untuk menyimpan data dalam pangkalan data (aliran IO). , dan walaupun penyerahan transaksi tidak diproses dengan baik, pangkalan data akan menduduki memori.
Cara terpantas ialah menjana data terus dalam pangkalan data
Jana sendiri jadual id (hanya satu medan id disimpan) dan rekod 100,000 entri (0-10w)
Kaedah Mysql:
insert into table t
select i.id, concat('名字', i.id) name,
concat('随机生成码7-12:',FLOOR(7 + (RAND() * 6))) rand,
ifnull(a.nickname, 'No nickname') nickname,
uuid() descript, --随机字符串
from_unixtime(unix_timestamp("20170101000000")+FLOOR((RAND()*60*60*24*365))) --2017年中随机日期
from table_id i
left join table_account a on a.id=FLOOR((RAND()*12)) --如果数据来源另外一些表
where i.id < 1000 --如果只要生成1000条
天蓬老师2017-06-05 11:09:07
Saya benar-benar tidak mahu memprosesnya secara berkelompok, ini_set(''memory_limit', '256M');? Atau jika memori pelayan anda tidak ketat, tetapkan ia kepada 512J
天蓬老师2017-06-05 11:09:07
1. Jika data yang dijana disimpan dalam struktur rantai, adalah disyorkan untuk mengoptimumkan struktur data Jika kebanyakan data adalah sama, anda boleh menggunakan nilai utama untuk menyimpan data yang sama, dan kemudian menggunakan sub-. nilai utama untuk menyimpan data yang berbeza (iaitu mencari titik persamaan sambil menempah perbezaan)
Seperti
array (0=>array('data'=>array('name'=>'t','age' =>'14),'key'=>array('1','2' ,'3','4')));
foreach($array as $val) {
foreach($val['key']=>$kval) {
var_dump($kval);
var_dump($val);
}
}
2. Menyimpan 10 keping data pada satu masa akan memberi lebih tekanan pada pelayan MySQL Adalah disyorkan untuk mengoptimumkan kod sisipan, seperti
masukkan ke dalam nilai jadual('t','a',1),('. t','a',2)
3 Adalah disyorkan untuk membuka transaksi dan menyerahkan data secara kuantitatif