色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁技術文章
文章詳情頁

mysql - PHP 批量插入的時候 判斷數據表里面是否重復怎么優化

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

問題描述

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

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

問題解答

回答1:

保證唯一放在數據庫那邊處理,設置個unique就好了吧。這個不需要PHP來處理。

回答2:

設置聯合主鍵

回答3:

不能重復的字段加唯一索引吧

回答4:

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

相關文章:
主站蜘蛛池模板: 欧美特级另类xxx | 亚洲精品国产经典一区二区 | 亚洲精品专区一区二区三区 | 午夜视频一区二区三区 | 国产午夜精品理论片小yo奈 | 国产精品视频久久久久久 | 欧美丝袜xxxxx在线播放 | 成人欧美一区二区三区 | 欧美一级乱理片免费观看 | 免费毛片儿 | 成人免费在线观看视频 | 在线91精品国产免费 | 美女张开腿黄网站免费国产 | 欧美人成a视频www | 久久亚洲人成国产精品 | 日本在线加勒比 | 欧美片a | 国产手机国产手机在线 | 久久综合久久精品 | 成年人视频免费网站 | 日韩精品福利视频一区二区三区 | 日韩一级片在线免费观看 | 久久中文字幕综合不卡一二区 | 性夜影院爽黄a爽免费看网站 | 日本高清色本在线www游戏 | 男女性高爱潮免费网站 | 免费人成在线观看网站品爱网 | 欧美一级鲁丝片免费看 | 日本wwww视频 | 99精品国产一区二区三区 | 亚洲www| 国产一区第一页 | 成人一级片在线观看 | 99在线国产 | 一级全黄视频 | 久久精品国产欧美成人 | 国产精品日本 | 国产在线精品成人一区二区三区 | 久草资源在线 | 日韩一级a毛片欧美一级 | 91久久99 |