+ -
当前位置:首页 → 问答吧 → mysql多线程读写方案求解

mysql多线程读写方案求解

时间:2011-09-16

来源:互联网

我自己做了一个服务端,准备用mysql作为数据库。我自己的服务和mysql服务跑在不同电脑上面的。

我的需求:
1、有N个客户端到我这里写数据,N范围5~20。我需要把数据写到mysql里面。

2、有N个客户端到我这里查询数据,N范围5~50。

3、有N个客户端到我这里更新数据,N范围5~50。


目前的一点点思路:
1、当查询数据的时候,异步处理。我做线程池,比如开10个线程,每个线程绑定一个mysql连接,当任务队列非空的时候,由空闲线程取出任务查询,然后将结果返回给客户端。

2、插入操作该如何处理?虽然有N个客户端,但是每个客户端是单线程的。

3、更新操作呢?有N个客户端,而且每个客户端是多线程到我这里更新的。

作者: yangyunzhao   发布时间: 2011-09-16

根据要求,查询可以异步处理让客户端慢慢等。
但是插入和更新必须是同步的,也就是我在mysql里面真的执行了,才能够告诉客户端OK。

作者: yangyunzhao   发布时间: 2011-09-16

首先你的服务端是长连接还是短连接
就是你客户端是用socket连你服务端,还是用类似http的方式

作者: wfevgch   发布时间: 2011-09-16

我希望是长连接,开了以后可能几个月不关的。
客户端应该是socket连接的吧?就是用C的API

作者: yangyunzhao   发布时间: 2011-09-16

如果是socket的话
你服务端保持5000个连接没问题,其实每个连接就是一个独立的线程,你自己找一个framework,不要自己写

作者: wfevgch   发布时间: 2011-09-16

客户端到我自己的服务端我会写,用的corba。

关键是我的服务端到mysql服务器不会写,因为之前没有用过mysql。不了解性能什么的

作者: yangyunzhao   发布时间: 2011-09-16

你就在服务端和客户端的连接线程中控制数据库的连接和操作即可

作者: wfevgch   发布时间: 2011-09-16