zoukankan      html  css  js  c++  java
  • 160802、1.06s删除10w条重复记录只保留一条(mysql)及linux删除乱码文件

    上次发表过的一遍删除重复记录的文章,其中最优的方案三删除1w条也花了0.07秒而2w条就已经花掉了4秒。今天进行了进一步优化,测试删除10w条只花了1.06秒。速度提升了很多。

    建表语句

    CREATE TABLE `test_user` (

      `id` INT(10) NOT NULL DEFAULT '0',

      `namea` VARCHAR(40) NOT NULL,

      `nameb` VARCHAR(40) NOT NULL,

      `user_id` VARCHAR(40) NOT NULL,

      PRIMARY KEY (`id`)

    ) ENGINE=INNODB DEFAULT CHARSET=utf8 ;

    新方案:(其中user_id是重复字段,保留一条)

    DELETE FROM test_user WHERE id NOT IN (SELECT id FROM (SELECT MAX(id) AS id FROM test_user GROUP BY user_id) X);

    10000条删除9990    20000条删除19990      100000条删除199990
    0.062sec           0.018sec                                 1.060sec

    另外总结了一条删除linux乱码文件的方法:(其中红色部分就为inode(index node) ,-i选项用于显示inode)
    [root@localhost test]# ls
    ?????.txt[root@localhost test]#  ls -lih
    total 4.0K
    1061229 -rw-r--r--. 1 root root 104 Jul 24 20:16 ?????.txt

    [root@localhost test]# find . -inum 1061229 -exec rm {} -rf ;

    [root@localhost test]# ls -l
    total 0

  • 相关阅读:
    MYSQL-------安全等于<=>
    MYSQL-------转义简单说明
    Linux命令 sed
    长目录如何快速cd
    SQLAlchemy(增删改查)
    PostgreSQL主键约束混乱
    Python实现智能回复
    Python 腾讯云发送短信
    Python3 Twilio 发送短信
    Elasticsearch 多条件查询
  • 原文地址:https://www.cnblogs.com/zrbfree/p/5736456.html
Copyright © 2011-2022 走看看