laravel如何做到多进程去查数据库
主要是因为我数据库数据太多了,导致接口返回时间太长了,都有十来秒,想能实现这样的效果,接口能建立多个进程,然后每个进程分别去数据库请求数据,请求完了后再合在一起?
关于 LearnKu
高认可度评论:
没有用的,不管你分几个进程,如果你请求的还是同一个表,还是要等待的,我用GO测试过,除非是不同表,那是会有一点性能提升。
花大力气琢磨这个,建议你还不如琢磨下怎么优化SQL语句以及索引。
fpm下据我了解没有啊 :sweat_smile: 要不然你走异步guzzle吧 哈哈哈哈
你是在什么模式下
workerman或swoole没有用的,不管你分几个进程,如果你请求的还是同一个表,还是要等待的,我用GO测试过,除非是不同表,那是会有一点性能提升。
花大力气琢磨这个,建议你还不如琢磨下怎么优化SQL语句以及索引。
数据太多就不要提供传统的查询,砍掉意义不大的检索条件,限制检索条数,比如日志,只提供最近一个月的检索,根据业务限制一下
有没有一种可能,你给你自己单独出个接口,获取少量数据,然后使用一楼的多路
Guzzle调用这个接口获取数据数据查询慢先考虑做索引,还慢就做数据表分区,还慢就考虑下做缓存。如果不单单是查询,还有读写并发造成的慢可以考虑分表甚至分库。看了你的问题感觉索引和表分区这两个较低成本的东西可以试试,数据量大导致的查询慢,就算你多个进程去查,每个进程也还是慢的,然后还要合并在一起,又花了合并的时间,所以感觉是不合理的
可以参考这边 Octane(加速引擎)