zoukankan      html  css  js  c++  java
  • 【MySQL插入更新重复值】ON DUPLICATE KEY UPDATE用法

    要插入的数据  与表中记录数据惟一索引或主键中产生重复值,那么就会发生旧行更新

    弊端:造成主键自增不连续。适合数据量不大的表。

    ON DUPLICATE KEY UPDATE后面的条件

    eg有如下表,仅主键存在UK(唯一)属性:

    select * from Student

    id  name    age
    1	jack	20
    2	rose	21
    

    insert into Student ( id,name) values (1,'jack') ON DUPLICATE KEY UPDATE name = 'tom',age=40;
    select * from Student;

    id  name    age
    1	tom	40
    2	rose	21
    

    end

    =======================================================================

    个人记录日记:

    千万条数据量,根据UK进行更新或插入,耗时较久,于是思考优化的思路:

    1、在UK字段建立索引(查明ON DUPLICATE KEY UPDATE是否用的到索引)

    2、拆成根据UK字段查询,根据查询结果判断后再进行插入和更新操作。这里耗时最大的操作是查询操作,所以查询仍需在UK字段建立索引。

    以及多线程下同步以上原子操作。

    过程中好奇sql的执行过程,查了一下资料:

    https://www.cnblogs.com/yuyue2014/p/3826941.html

  • 相关阅读:
    初识sql语句
    IO模型比较分析
    select,poll,epoll,selectors
    多路复用IO
    非阻塞IO
    yield-from示例
    阻塞IO(blocking IO)
    IO模型介绍
    gevent实现套接字
    gevent异步,io自动切换
  • 原文地址:https://www.cnblogs.com/the-fool/p/11054097.html
Copyright © 2011-2022 走看看