移动端访问mysql_java – (可能)数百个移动客户端访问MySQL数据库的最佳方法是什么?...
所以這里是交易.
我正在開發(fā)一個(gè)
Android應(yīng)用程序(雖然它可以像任何其他移動(dòng)平臺(tái)一樣容易)偶爾會(huì)向服務(wù)器發(fā)送查詢(編寫的是Java).然后,該服務(wù)器將在MySQL數(shù)據(jù)庫(kù)中搜索查詢,并將結(jié)果發(fā)送回Android.雖然這聽起來(lái)很通用,但這里有一些細(xì)節(jié):
> Android每次查詢時(shí)都會(huì)與服務(wù)器建立新的TCP連接.服務(wù)器地理位置接近,Android可能會(huì)移動(dòng)很多,而且,由于Android應(yīng)用程序可能只運(yùn)行幾個(gè)小時(shí)而只發(fā)送一些查詢,這似乎是資源的最佳使用.
>服務(wù)器可能會(huì)同時(shí)擁有數(shù)百個(gè)(甚至可能是數(shù)千個(gè))這些查詢.
>由于每個(gè)查詢都在自己的Thread中運(yùn)行,因此每個(gè)查詢至少需要自己的Statement(并且可以擁有自己的Connection).
現(xiàn)在,服務(wù)器設(shè)置為與數(shù)據(jù)庫(kù)建立一個(gè)連接,然后為每個(gè)查詢創(chuàng)建一個(gè)新的Statement.我對(duì)那些有一些數(shù)據(jù)庫(kù)經(jīng)驗(yàn)的人的問(wèn)題(特別是MySQL,因?yàn)樗且粋€(gè)MySQL數(shù)據(jù)庫(kù))是:
a)從單個(gè)連接創(chuàng)建一個(gè)每個(gè)線程的語(yǔ)句是否可以安全線程?據(jù)我所知,只是尋找確認(rèn).
b)多線程是否有任何線程安全的方式來(lái)使用單個(gè)PreparedStatement?這些查詢都將完全相同,并且由于每個(gè)線程只執(zhí)行一個(gè)查詢?nèi)缓蠓祷?這將是理想的.
c)我應(yīng)該為每個(gè)線程創(chuàng)建一個(gè)新的連接,還是從單個(gè)連接生成新的語(yǔ)句更好?我認(rèn)為單個(gè)Connection在性能方面會(huì)更好,但我不知道建立數(shù)據(jù)庫(kù)連接的開銷是多少.
d)最好是為所有這些使用存儲(chǔ)的SQL過(guò)程嗎?
我們非常感謝您對(duì)這些事項(xiàng)的任何提示/意見/建議.
編輯:
為了澄清,android通過(guò)網(wǎng)絡(luò)向服務(wù)器發(fā)送查詢,然后服務(wù)器查詢數(shù)據(jù)庫(kù). android不直接與數(shù)據(jù)庫(kù)通信.我主要想知道服務(wù)器數(shù)據(jù)庫(kù)連接的最佳實(shí)踐.
總結(jié)
以上是生活随笔為你收集整理的移动端访问mysql_java – (可能)数百个移动客户端访问MySQL数据库的最佳方法是什么?...的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: mysql mysqlhotcopy_M
- 下一篇: mysql linux selected