国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

mysql - PHP 批量插入的時(shí)候 判斷數(shù)據(jù)表里面是否重復(fù)怎么優(yōu)化

瀏覽:164日期:2022-06-13 14:00:45

問(wèn)題描述

場(chǎng)景:從第三方接口獲取到數(shù)據(jù) 比如 獲取到了 500 條,然后批量插入到表,但是要保證唯一。代碼如果是這樣的(name 字段有索引的情況下怎么才能最大化的優(yōu)化),這樣的結(jié)果是有500次的I/O 這個(gè)邏輯怎么優(yōu)化最佳呢;這里還有個(gè)場(chǎng)景如果當(dāng)這 500條插入成功后馬上進(jìn)行二次查詢第三方接口然后再批量插入,主要是考慮到第二種情況:

$datas = [];$Apps = new Apps();foreach ($lists as $k=>$v){ $name = $v[’name’]; $res = $Apps->where([’name’ => $name])->field(’name’)->find(); //如果沒(méi)有記錄 if (empty($res)){$datas[] = [’name’ => $name]; }}if (empty($datas)){ //批量插入 $Apps->saveAll($datas);}

問(wèn)題解答

回答1:

保證唯一放在數(shù)據(jù)庫(kù)那邊處理,設(shè)置個(gè)unique就好了吧。這個(gè)不需要PHP來(lái)處理。

回答2:

設(shè)置聯(lián)合主鍵

回答3:

不能重復(fù)的字段加唯一索引吧

回答4:

首先對(duì)該字段加唯一索引,然后SQL改成這樣,?INSERT INTO xx (yy)VALUES(?) ON DUPLICATE KEY UPDATE yy=?但唯一鍵出現(xiàn)重復(fù)時(shí)更新字段,也可以忽略重復(fù),對(duì)重復(fù)的行不做修改INSERT IGNORE INTO

相關(guān)文章:
主站蜘蛛池模板: 东乡| 察哈| 遵义市| 芦山县| 綦江县| 罗平县| 深圳市| 平定县| 南昌市| 朝阳县| 农安县| 永州市| 本溪市| 泉州市| 利津县| 镶黄旗| 延安市| 萨迦县| 邵阳县| 玛曲县| 循化| 广宁县| 景德镇市| 日喀则市| 庆元县| 库伦旗| 无为县| 蕲春县| 秦安县| 新闻| 昆山市| 新兴县| 鄱阳县| 离岛区| 河东区| 府谷县| 刚察县| 林甸县| 安阳市| 修水县| 论坛|