160802、1.06s删除10w条重复记录只保留一条(mysql)及linux删除乱码文件
2016-08-04 13:53
471 查看
上次发表过的一遍删除重复记录的文章,其中最优的方案三删除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
建表语句
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 删除表中的重复记录,只保留其中一条
- mysql,oracle里删除重复记录,只保留一条(除了自增长字段,其他的字段完全相同为相同记录)
- mysql 删除表中的重复记录,只保留其中一条
- 【MySQL】删除重复记录保留一条的高性能DELETE写法
- mysql删除重复数据只保留id最大一条记录
- MySQL按某些字段删除重复记录,只保留一条记录
- Mysql删除重复记录,保留id最小的一条
- MySQL删除没有主键的表中的重复记录,只保留一条记录
- MySQL删除重复记录只保留一条
- MySQL删除重复记录只保留一条
- MySQL删除表中多余的重复记录,只保留一条记录
- MySQL下删除重复记录只保留一条数据
- mysql删除重复记录只保留一条数据
- mysql删除重复记录并只保留一条
- Mysql 删除重复记录,只保留最小的一条
- mysql删除重复记录只保留一条
- 关于mysql中删除重复记录,并保留重复数据中的一条数据的SQL语句理解
- MySQL删除重复记录只保留一条
- mysql 删除重复数据只保留一条记录