mysql中 如何用多线程生成动态表结构

wyaowei 发布于 2016/05/28 18:50
阅读 188
收藏 0

你好:

      首先是多表查询,把查到的字段生成新表,然后把对应字段的数据保存到新生成的表中,因为每条数据都需要验证,所以要从数据库中查询到数据再写入数据库表中,用过单线程,但是效率太慢了,想用多线程提高效率! 如何加入多线程呢?希望大神给想法!


加载中
0
月生无界
月生无界
网上so了一下,多线程是将一个查询分成多个子查询,再将结果整合,比较适合统计数据,但是你的这个问题,是多表关联查询记录,个人认为并不适用多线程,意思是说,你的查询只是一条sql,起一个线程就行了,可能慢的原因,是你在from前的语句中还有select * from 这样的语句,如果这样,用虚拟表写在from后面,或者mysql版本太低,用最新版本的mysql,忘记是哪两个版本的mysql,查询性能相差挺多的,个人见解,有错请纠正
0
螃蟹大叔
螃蟹大叔
创建更多的连接数执行你的SQL,比如Java可以创建一个连接池,这个连接池可以启动多个连接,所以在Java中使用多线程的时候每个线程都可以有自己独立的连接,这样去执行sql
螃蟹大叔
螃蟹大叔
回复 @wyaowei : 你查怎么会耗时间的呢,查一次,写多次
w
wyaowei
回复 @刘万杰 : 完整任务是指:完成100条数据查询。你的意思是让先查询,然后让线程池去写对吧。我们用的mysql,应该是查询比较费时间吧,写应该比较快,可不可以把查询也加进线程池
螃蟹大叔
螃蟹大叔
回复 @wyaowei : 执行一个完整的任务是什么意思,是指一下执行100条数据?还是指每一条数据执行完后再继续执行下一条,你可以先查询出所有的数据,然后用一个for循环把这每条数据循环出来,丢给线程池去处理,线程池里面对加入队列的每条数据进行验证,并插入新表
w
wyaowei
链接池也可以,但是如何能让多个线程执行一个完整的任务。例如有100条数据要验证生成新表,第一个线程执行第1-50条数据,如何让第二个线程执行第51-100条数据,而且要同时进行!
0
月生无界
月生无界
视图,存储过程,定时器,管他快还是慢,现在数据库记录不过十万的话,应该也没差多少,或者直接用where子句控制需要查询的数据,不需要的干嘛要查出来,直接条件筛选掉
w
wyaowei
是查询不同表中有关系的字段,然后生成新表的字段 ,多线程我是真的不太懂! 求指导!!
返回顶部
顶部