laravel如何做到多进程去查数据库

主要是因为我数据库数据太多了,导致接口返回时间太长了,都有十来秒,想能实现这样的效果,接口能建立多个进程,然后每个进程分别去数据库请求数据,请求完了后再合在一起?

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 13

没有用的,不管你分几个进程,如果你请求的还是同一个表,还是要等待的,我用GO测试过,除非是不同表,那是会有一点性能提升。

花大力气琢磨这个,建议你还不如琢磨下怎么优化SQL语句以及索引。

3年前 评论

fpm下据我了解没有啊 :sweat_smile: 要不然你走异步guzzle吧 哈哈哈哈

3年前 评论

你是在什么模式下

3年前 评论
donggan (楼主) 3年前
xiaopi 3年前
lait233 3年前
xiaopi 3年前

没有用的,不管你分几个进程,如果你请求的还是同一个表,还是要等待的,我用GO测试过,除非是不同表,那是会有一点性能提升。

花大力气琢磨这个,建议你还不如琢磨下怎么优化SQL语句以及索引。

3年前 评论

数据太多就不要提供传统的查询,砍掉意义不大的检索条件,限制检索条数,比如日志,只提供最近一个月的检索,根据业务限制一下

3年前 评论

有没有一种可能,你给你自己单独出个接口,获取少量数据,然后使用一楼的多路Guzzle调用这个接口获取数据

3年前 评论

数据查询慢先考虑做索引,还慢就做数据表分区,还慢就考虑下做缓存。如果不单单是查询,还有读写并发造成的慢可以考虑分表甚至分库。看了你的问题感觉索引和表分区这两个较低成本的东西可以试试,数据量大导致的查询慢,就算你多个进程去查,每个进程也还是慢的,然后还要合并在一起,又花了合并的时间,所以感觉是不合理的

3年前 评论
use App\User;
use App\Server;
use Laravel\Octane\Facades\Octane;

[$users, $servers] = Octane::concurrently([
    fn () => User::all(),
    fn () => Server::all(),
]);
3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!