所以这里是交易.
我正在开发一个
Android应用程序(虽然它可以像任何其他移动平台一样容易)偶尔会向服务器发送查询(编写的是Java).然后,该服务器将在MySQL数据库中搜索查询,并将结果发送回Android.虽然这听起来很通用,但这里有一些细节:
> Android每次查询时都会与服务器建立新的TCP连接.服务器地理位置接近,Android可能会移动很多,而且,由于Android应用程序可能只运行几个小时而只发送一些查询,这似乎是资源的最佳使用.
>服务器可能会同时拥有数百个(甚至可能是数千个)这些查询.
>由于每个查询都在自己的Thread中运行,因此每个查询至少需要自己的Statement(并且可以拥有自己的Connection).
现在,服务器设置为与数据库建立一个连接,然后为每个查询创建一个新的Statement.我对那些有一些数据库经验的人的问题(特别是MySQL,因为它是一个MySQL数据库)是:
a)从单个连接创建一个每个线程的语句是否可以安全线程?据我所知,只是寻找确认.
b)多线程是否有任何线程安全的方式来使用单个PreparedStatement?这些查询都将完全相同,并且由于每个线程只执行一个查询然后返回,这将是理想的.
c)我应该为每个线程创建一个新的连接,还是从单个连接生成新的语句更好?我认为单个Connection在性能方面会更好,但我不知道建立数据库连接的开销是多少.
d)最好是为所有这些使用存储的SQL过程吗?
我们非常感谢您对这些事项的任何提示/意见/建议.
编辑:
为了澄清,android通过网络向服务器发送查询,然后服务器查询数据库. android不直接与数据库通信.我主要想知道服务器数据库连接的最佳实践.