如果从数据库中读取十万条数据,使用五个线程读取,需要对每个线程指定要读取的行数吗?比如,给每个线程分配两万条数据? 一般这种情况,使用多线程怎么处理呢?
1
TomVista 2019-05-30 10:13:02 +08:00
除非现在的 sql 查询 是一核有难八方点赞的情况,否则不建议这么干....
|
2
nicebird 2019-05-30 10:22:49 +08:00
先确定瓶颈是什么,再找处理方案。
|
3
airfling 2019-05-30 11:13:33 +08:00
你这如果是同一个连接池话还不如一个线程来的快,而且你这个瓶颈没有确定是你应用的瓶颈,还是数据库的瓶颈
|
4
marsgt 2019-05-30 11:36:01 +08:00
可能你读的是别家的数据库吧。。。
|
5
sagaxu 2019-05-30 14:01:09 +08:00 via Android
你跟 dba 有仇吗?
|
6
cirton OP @airfling 这个不是实际的应该场景。。。我只是想知道如果数据量很大,需要多个线程去读取的话,需要给每个线程设定读取范围吗?还是怎么操作?
|
7
yxjn 2019-05-30 14:34:43 +08:00
想到自己当年也有类似的需求,当时是把所有数据全都 load 到内存中,然后再跑多线程处理。也没想过内存溢出的问题。真是初生牛犊不怕虎。
|
8
pursuer 2019-05-30 15:23:55 +08:00
数据量很大似乎和多线程读取没有因果关系,除非分布式的数据库?具体怎么读要看数据库结构的吧
|
9
Beeethoven 2019-05-30 16:10:34 +08:00
这种超大数据量瓶颈一般都是你数据库性能吧.. 反正都是单库,5 线程我感觉会更慢呢
|