问题分析探讨 --> 大约有700W数据的表,把当天的10W数据select导入新表,整个原来的表就锁死...

本文讨论了一个初创公司面临的大数据量导入问题,每天新增约5万条记录,更新约10万条,全量导入新表时导致锁表。通过分批处理和建立索引来提高效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Sun shine 16:15:55
帅哥 我有个手机表 大约有700百数据,,每天新增 大约五万,并且新也有update 大约10万 然后 我每晚 把当天的数据select 导入一个新表中的时候 整个表就锁死了, 有什么好的解决方案吗


黄杉() 17:32:18
你的导入方式是?
刚才在忙
你的导入方式或者大概过程是怎么样的?


Sun shine 17:43:39
insert 表 a select * from 表b where time=day


黄杉() 17:49:45
数据量一次性操作太多了
分成N个小的sql试下


Sun shine 17:50:17
每次大约 6万条


黄杉() 17:50:18
比如, 5分钟的数据拉一次


Sun shine 17:50:28
好的 我试试。


黄杉() 17:50:39
每拉一次,间隔5分钟
做成一个contrab任务


Sun shine 17:51:30
我这边是直接 程序 jdbc 写的sql


黄杉() 17:52:27
那就做一个java的quart任务
放到业务最低峰的时候执行。


Sun shine 17:52:49
恩是的,现在是每天导入一次。


黄杉() 17:53:08
分多次导入吧,我猜测你们的mysql服务器配置很低吧


Sun shine 17:53:38
服务器 是 8g内存 4核的。
整个服务器就放了一台数据库


黄杉() 17:54:01
好吧,跟我们的个人pc机差不多的配置


Sun shine 17:55:04
是的 比较低。
公司小,一切都得省 得重程序的方面去优化。


黄杉() 17:55:55
那么操作的时候,就每次执行少量的数据,不要太多了,磁盘io,cpu啥以及内存啥的消耗少一些
创业型的公司吧
前途大大的
加油


Sun shine 17:56:34
对的,刚创业的公司。
技术人员配的不齐,我们写程序的 也得搞数据库。


黄杉() 17:57:15
那以后就是多面手了, cto的候选人


Sun shine 17:58:26
这个 还要很多年的磨练


黄杉() 17:58:44

insert表aselect*from表bwhere time=day中, time字段有索引吗?

Sunshine 18:10:58
没有,准备建立个索引
黄杉() 18:11:42
那要建个索引的,不然会很慢的
总结: 这种查询慢锁表第一问就应该咨询where后面的time字段有无建索引,是自己疏忽了.有些开发人员的db水平不是很强,我们要想到这一点.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值