zoukankan      html  css  js  c++  java
  • mysql优化 ON DUPLICATE KEY UPDATE

    场景:
    比如,有一张表,专门记录业务里的唯一数据记录,这张表里如果存在此唯一数据的记录就更新此行数据的某个字段,如果此唯一数据不存在,那么就添加一条最新数据。

    一贯操作:如果不知道mysql有 ON DUPLICATE KEY UPDATE 这种操作的话,一般的做法都是先select此表,如果存在就update,不存在的话就insert数据 ,这样做在高并发的场景下,是两条sql,会大大增加数据库负担。


    优化: ON DUPLICATE KEY UPDATE ,一条语句完成以上两步操作。


    简单举例:比如,记录用户登陆的最后IP和时间

    CREATE TABLE `last_login_log` (
      `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
      `username` varchar(255) DEFAULT NULL,
      `ip_addr` varchar(255) DEFAULT NULL,
      `update_time` datetime DEFAULT NULL,
      PRIMARY KEY (`id`),
      UNIQUE KEY `username` (`username`) USING BTREE
    ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
    INSERT INTO last_login_log (
        username,
        ip_addr,
        update_time
    )
    VALUES
        (
            '菜鸟一号',
            '192.122.4.4',
            NOW()
        ) ON DUPLICATE KEY UPDATE update_time = now(), ip_addr = '192.122.4.6';

    自己拿以上语句测试一下,多执行几遍观察

    参考:https://blog.csdn.net/u014287775/article/details/80509775

              https://www.cnblogs.com/zjdxr-up/p/8319982.html

              https://www.cnblogs.com/rocky-AGE-24/p/7392641.html

  • 相关阅读:
    48. Rotate Image
    83. Remove Duplicates from Sorted List
    46. Permutations
    HTML5笔记
    18. 4Sum
    24. Swap Nodes in Pairs
    42. Trapping Rain Water
    Python modf() 函数
    Python min() 函数
    Python max() 函数
  • 原文地址:https://www.cnblogs.com/wt645631686/p/8456361.html
Copyright © 2011-2022 走看看