MySQL数据库千万级数据处理?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL数据库千万级数据处理?相关的知识,希望对你有一定的参考价值。

MySQL数据库,有A表(二十多个字段,4千万条数据)和B表(1个字段,八百多万条数据)。现在要清理A表中的数据,将A表中在B表中不存在的数据清理掉。这个应该怎么处理呢?

也就是A表中保留B表中存在的数据,可以通过筛选把这样的数据放在第三个表

只要索引合理,数据量不算大

祝好运,望采纳。

追问

索引就设置A表和B表的关联条件字段做索引就可以吧?但是直接这样用SQL命令做的话不会卡死么?

追答

不要在在线库操作,多尝试

追问

不要在在线库操作是什么意思?

追答

生产环境

参考技术A 方法有三种
1,delete from a where a.字段 not in (select b.字段 from b)

2,delete from a where not exists (select 1 from b where a.字段= b.字段)
3, create table a_tmp select a.* from a,b where a.字段= b.字段;
drop table a;
rename table a_tmp to a;
以上字段为a何b关联的字段,由于数据量大合理建立索引
参考技术B 数据库主要就是两个功能,一个是查询,一个是储存,而大数据必定会拖慢查询,我们对于大数据,更多的是从业务逻辑进行拆分,比如:
当存储一个人的历史信息的时候,可以按照时间存储,一定是最近的记录最经常访问,这就是我们常说的二八定律,最长访问的数据仅仅占有不到两成的数据量。
上面说的就是分库分表,这是一种解决数据量大的办法。
内存数据库,redis也是一种处理大数据的办法,将常访问的数据放到redis里面,可以缓解数据库的压力,还是像上面说的,我们只要可以找到用户经常访问的数据,然后放到内存数据库中,就可以大大减少mysql的压力。
最后,技术一定是为解决问题而产生的,我们一定需要对业务进行分析,才能考虑使用什么技术,抛开业务单存讲技术,这是不正确的。

以上是关于MySQL数据库千万级数据处理?的主要内容,如果未能解决你的问题,请参考以下文章

.Net Core导入千万级数据至Mysql

MySQL 百万级分页优化(Mysql千万级快速分页)

MySQL 百万级/千万级表 全量更新

mysql千万级数据量查询出所有重复的记录

Mysql千万级数据表结构修改

mysql千万级数据量查询出所有重复的记录