{eval=Array;=+count(Array);}
使用SQL處理數(shù)據(jù)時,數(shù)據(jù)會在數(shù)據(jù)庫內(nèi)直接進(jìn)行處理,而且sql處理本身可以對sql語句做優(yōu)化,按照最優(yōu)的策略自動執(zhí)行。
使用Java處理時,需要把數(shù)據(jù)從數(shù)據(jù)庫讀入到Java程序內(nèi)存,其中有網(wǎng)絡(luò)處理和數(shù)據(jù)封裝的操作,數(shù)據(jù)量比較大時,有一定的延遲,所以相對來說數(shù)據(jù)處理就慢一些。
當(dāng)然,這個只是大體示意圖,實際根據(jù)業(yè)務(wù)不同會更復(fù)雜。
兩者側(cè)重的點不同,有各自適合的業(yè)務(wù)領(lǐng)域,需要根據(jù)實際情況選用合適的方式。
1.選擇了Java就不要考慮運行效率.
2.SQL是描述...如果最終的執(zhí)行者也是Java來運行那速度一樣慢...大部分?jǐn)?shù)據(jù)庫都不是Java的...
3.SQL背后有多少臺機器真的不好說...可能是數(shù)據(jù)庫集群...可能是大數(shù)據(jù)集群...
它們是業(yè)務(wù)功能編程實現(xiàn)工具;
處理業(yè)務(wù)邏輯有先天性優(yōu)勢;
編程語言類庫中擁有豐富的系統(tǒng)函數(shù),開發(fā)效率高;
尤其是在SOA項目,大型綜合系統(tǒng)的開發(fā)中處于有利地位;
JAVA 與 .NET都提供了針對數(shù)據(jù)庫的驅(qū)動程序,他們操作數(shù)據(jù)庫是通過驅(qū)動程序中轉(zhuǎn)操作指令的,反應(yīng)當(dāng)然要慢一拍。
SQL server 與 MySQL,Oracle,MongoDB, Redis 等數(shù)據(jù)庫
它們是數(shù)據(jù)庫
前三個是關(guān)系型數(shù)據(jù)庫,一般用來存儲業(yè)務(wù)數(shù)據(jù),提供讀寫功能;
后2個是非關(guān)系型數(shù)據(jù)庫,人稱NoSQL數(shù)據(jù)庫,一般用來作為緩存服務(wù)器的軟件環(huán)境, 數(shù)據(jù)是以 JSON格式存儲的;
數(shù)據(jù)庫本質(zhì)是提供了 增加,修改,刪除,查詢功能的一個載體,好比是一個智能存儲的倉庫
SQL腳本是專門針對數(shù)據(jù)庫操作的編程語言,本質(zhì)上 提供4種操作引擎: 增加,修改,刪除,查詢
如果有這方面的業(yè)務(wù),如果是 java方向,Hadoop, Spark, Hive 將是操作利器;
如果是 .net 方向,則 SSIS, SSRS, SSAS 將是利刃。
總體來說, 第一類 編程語言 好比 SUV,擅長于跑高速, 跑的又快又遠(yuǎn);第二類編程語言,好比 挖機,擅長于 挖地基,挖墻角,挖的深打的牢。
當(dāng)你要去外地娶親時,少不了 SUV; 當(dāng)你要回老家做房子時,少不了 挖機。
希望對你有所幫助. 謝謝.
(結(jié)束)
因為sql是直接操作數(shù)據(jù)庫,java需要先與數(shù)據(jù)庫建立連接,在發(fā)指令到數(shù)據(jù)庫進(jìn)行操作,因此速度肯定沒有sql快,但是sql不太擅長業(yè)務(wù)邏輯處理的操作,一般情況是用java來做業(yè)務(wù)邏輯的處理,然后調(diào)用sql對數(shù)據(jù)庫進(jìn)行操作,或者通過nosql的技術(shù)來處理大數(shù)據(jù)高并發(fā)、大數(shù)據(jù)量的問題。
0
回答0
回答0
回答0
回答10
回答0
回答10
回答0
回答0
回答0
回答