BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / www-technology / #27899同步于 2014/10/23
该镜像源已超过 30 天没有更新,可能在源站已被删除。
WWWTechnology机器人发帖

PHP如何提高mysql插入效率

youziboy
2014/10/23镜像同步5 回复
1.第一次插入了一批数据, 2.以后会经常往这个表里面插入数据,遵循如下原则: a。如果要插入的和表里面的字段全部一样的话,就不插入。 b。如果和表里面的某个字段(非主键)一样的话,就更新该条记录。 c。如果新数据里面的该字段在库里面没有的话,就直接插入。 如果数据量比较大话,如何能提高效率呢?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
weiyitheonly机器人#1 · 2014/10/24
如果一组数据,只有主键相同,那么这组数据走的是哪个分支? 如果一组数据,数据里面的值在库里的多条记录都有。比如数据是1 2,库里面有1 3 和 4 2,那么是都更新吗? 假设你的数据库是自增主键,也就是要存的数据里面不包含主键,那么,下面的情况是否是允许的? 如果要插入的数据是 1 2 现在库里面有 1 3 于是更新1 3为 1 2 然后来了数据 3 2,于是更新1 2 到 3 2 然后来了数据 3 4,于是更新3 2 到 3 4 然后又来了数据1 2, 于是只能插入新数据 1 2
youziboy机器人#2 · 2014/10/24
再说一下,假如: 表test结构是 ID a1 a2 a3 4个字段 ps: ID为表的key, auto_increment 文本文件结构是: a1_1 a2_1 a3_1 总的来说: 就是新数据(从文本文件来), 如果a1_1在test表的a1字段中能找到的话,则update表test.a2, test.a3字段至文本文件对应的字段a2_1 和 a3_1,如果找不到的话,就在test中新插入一条。 比如: 第一次插入数据: 1 http://www.sina.com 2 3 4 第二次有数据来了: 文本文件a1_1,a2_1 ,a3_1相应的字段是: http://www.sina.com 2 4 5 则更新上面那条数据为 1 http://www.sina.com 2 4 5 如果第三次数据来了: a1_1,a2_1 ,a3_1相应的字段是: http://www.sohu.com 2 3 4 则插入新数据: 2 http://www.sohu.com 2 3 4 尝试使用insert on duplicate key update 语法,但是不成功。 【 在 weiyitheonly 的大作中提到: 】 : 如果一组数据,只有主键相同,那么这组数据走的是哪个分支? : 如果一组数据,数据里面的值在库里的多条记录都有。比如数据是1 2,库里面有1 3 和 4 2,那么是都更新吗? : 假设你的数据库是自增主键,也就是要存的数据里面不包含主键,那么,下面的情况是否是允许的? : ...................
youziboy机器人#3 · 2014/10/24
1. 主键是自动生成的ID,所以不会重复。 2. 比如数据是1 2,库里面有1 3 和 4 2,那么是都更新吗? 1 3需要更新为1 2, 4 2不用更新。 【 在 weiyitheonly 的大作中提到: 】 : 如果一组数据,只有主键相同,那么这组数据走的是哪个分支? : 如果一组数据,数据里面的值在库里的多条记录都有。比如数据是1 2,库里面有1 3 和 4 2,那么是都更新吗? : 假设你的数据库是自增主键,也就是要存的数据里面不包含主键,那么,下面的情况是否是允许的? : ...................
changzhu机器人#4 · 2014/10/24
看描述,insert on duplicate key update 是重复数据怎么处理 你的需求的话,用replace into试试
youziboy机器人#5 · 2014/10/25
我最后用的还是 insert on duplicate key update,成功了。 【 在 changzhu 的大作中提到: 】 : 看描述,insert on duplicate key update 是重复数据怎么处理 : 你的需求的话,用replace into试试