PHP 写代码直接处理 MySQL 中的大量数据,卡死

2015-05-11 09:27:10 +08:00
 Nixus

有时候需要独立处理数据库中的大量数据,这个时候就自己写代码去处理,但是执行的时候,很耗资源,这个一执行,基本上网站的其它功能就全都卡在那里,动不了了,大家有什么好的解决方案吗?

实际情况是这样的,公司A系统中,有电话录音文件,这些录音文件,需要和B系统中的用户关联起来,所以,录音文件的文件名中包含了用户的电话号码,通过电话号码,在B系统中的数据库查找顾客ID,然后关联,大概有十几万条通话记录吧。PHP写了一段代码来处理,但是一执行,就系统的其它功能就卡住了,动不了

有什么好的解决方案?

3778 次点击
所在节点    PHP
24 条回复
yanze0613
2015-05-11 13:23:09 +08:00
读写分离,或者定期作业
knightlhs
2015-05-11 15:01:46 +08:00
1、要做读写分离 否则 容易遇到锁
2、按需增加索引 加快扫描速度
3、整理业务 可以合并的合并成一条 sql 不能合并 且量大的情况下 启用队列
4、实时性不高的业务 做成定时任务 在负载低的时段后端以 cli 方式运行
fangjinmin
2015-05-11 18:21:20 +08:00
10多万条数据不多,每次取少一点数据,用offset limit来取吧,这样会快一些。
akira
2015-05-12 01:02:15 +08:00
这种一般是sql没优化好的可能性比较大。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/190080

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX