【问题整理】MySQL大量数据去重处理

由于工作中需要进行数据去重,所以做一下记录,其实是很小白的问题。。。。

其实对于数据去重来讲,最好的是在设计程序和数据库的时候就考虑到数据冗余问题,不插入重复的数据。但是呢,,,这个项目,如果其中的两个字段同时重复,就算冗余,但是还需要自增长的id作为主键方便查询。。。。so。。。算了,我写完数据自己去重吧。。。

因为有大量的重复数据,所以选择的去重方法是通过聚合函数建立一个新的表,然后重命名。sql代码如下:

create table tmp select * from table_name group by column1,column2;

然后呢,因为删除过大量数据,所以id都快到600000了。。。看着太碍眼了,所以把id变成从1 开始了。方法是先把id字段删除了,然后再增加id字段并设为自增长,好了,终于看着舒心了。。。三十多万的数据去重后大概十八条数据,用时70s,估计几千万数据的时候我就该哭了,anyway,到时再说,继续想想有什么好办法。

时间: 2024-10-20 20:17:33

【问题整理】MySQL大量数据去重处理的相关文章

mysql之数据去重并记录总数

引用: http://blog.sina.com.cn/s/blog_6c9d65a10101bkgk.htmlhttp://www.jb51.net/article/39302.htm 1.使用distinct去重(适合查询整张表的总数)有多个学校+教师投稿,需要统计出作者的总数 select count(author) as total from files 每个作者都投稿很多,这里有重复的记录. select distinct author from files; 有可能两个学校的教师姓名

MySQL数据表合并(两表字段相同)以及数据去重(抄)

数据去重现有两个表 test_01 test_02 其中test_01有重复数据 统计重复数据select count(*) as repeat_count,name from test_01 group by name having repeat_count > 1;1 使用DISTINCT关键字过滤重复数据select distinct name,age from test_01;1 也可以使用GROUP BY过滤重复数据select name,age,gender from test_01

关于mysql 删除数据后物理空间未释放

OPTIMIZE TABLE 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删除操作后在数据文件中留下碎片所致.OPTIMIZE TABLE 是指对表进行优化.如果已经删除了表的一大部分数据,或者如果已经对含有可变长度行的表(含有 VARCHAR . BLOB 或 TEXT 列的表)进行了很多更改,就应该使用 OPTIMIZE TABLE 命令来进行表优化.这个命令可以将表中的空间碎片进行合并,并且可以消除由于删除或者更新造成的空间浪费 .OPTIMIZE TABLE

MySQL数据库数据存放位置修改

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一.MySQL 是开源的,所以你不需要支付额外的费用.MySQL 对 PHP 有很好的支持,PHP是目前最流行的 Web 开发语言.大部分的PHP开发者都会去学习MySQL.MySQL是可以

关于mysql 删除数据后物理空间未释放(转载)

转自 关于mysql 删除数据后物理空间未释放(转载) - NETDATA - 博客园http://www.cnblogs.com/shawnloong/archive/2013/02/07/2908911.html OPTIMIZE TABLE 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删除操作后在数据文件中留下碎片所致.OPTIMIZE TABLE 是指对表进行优化.如果已经删除了表的一大部分数据,或者如果已经对含有可变长度行的表(含有 VARCHAR . B

Docker mysql 把数据存储在本地目录

欢迎关注大数据和人工智能技术文章发布的微信公众号:清研学堂,在这里你可以学到夜白(作者笔名)精心整理的笔记,让我们每天进步一点点,让优秀成为一种习惯! Docker mysql 把数据存储在本地目录,很简单,只需要映射本地目录到容器即可 1.加上-v参数 $ docker run -d -e MYSQL_ROOT_PASSWORD=admin --name mysql -v /data/mysql/data:/var/lib/mysql -p 3306:3306 mysql 还可以指定配置文件

用python3的多进程和协程处理MySQL的数据

本文介绍用python3的多进程 + 协程处理MySQL的数据,主要逻辑是拉取MySQL的数据,然后使用flashtext匹配关键字,在存回MySQL,代码如下(async_mysql.py): import time import asyncio import random from concurrent.futures import ProcessPoolExecutor as Pool import aiomysql from flashtext import KeywordProcess

关于mysql 删除数据后(.MYD,MYI)物理空间未释放

关于mysql 删除数据后物理空间未释放 OPTIMIZE TABLE 当您的库中删除了大量的数据后,您可能会发现数据文件尺寸并没有减小.这是因为删除操作后在数据文件中留下碎片所致.OPTIMIZE TABLE 是指对表进行优化.如果已经删除了表的一大部分数据,或者如果已经对含有可变长度行的表(含有 VARCHAR . BLOB 或 TEXT 列的表)进行了很多更改,就应该使用 OPTIMIZE TABLE 命令来进行表优化.这个命令可以将表中的空间碎片进行合并,并且可以消除由于删除或者更新造成

Java Web学习系列——Maven Web项目中集成使用Spring、MyBatis实现对MySQL的数据访问

本篇内容还是建立在上一篇Java Web学习系列——Maven Web项目中集成使用Spring基础之上,对之前的Maven Web项目进行升级改造,实现对MySQL的数据访问. 添加依赖Jar包 这部分内容需要以下Jar包支持 mysql-connector:MySQL数据库连接驱动,架起服务端与数据库沟通的桥梁: MyBatis:一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架: log4j:Apache的开源项目,一个功能强大的日志组件,提供方便的日志记录: 修改后的pom.xm