|
半個(gè)月前看到博客園有人說(shuō).NET不行那篇文章,我只想說(shuō)你們有時(shí)間去抱怨不如多寫些實(shí)在的東西。
1、SQLSERVER優(yōu)點(diǎn)和缺點(diǎn)?優(yōu)點(diǎn):支持索引、事務(wù)、安全性以及容錯(cuò)性高 缺點(diǎn):數(shù)據(jù)量達(dá)到100萬(wàn)以上就需要開(kāi)始優(yōu)化了,一般我們會(huì)對(duì) 表進(jìn)行水平拆分,分表、分區(qū)和作業(yè)同步等,這樣做大大提高了邏輯的復(fù)雜性,難以維護(hù),只有群集容錯(cuò),沒(méi)有多庫(kù)負(fù)載均衡并行計(jì)算功能。
2、SQLSERVER真的不能處理大數(shù)據(jù)?答案:當(dāng)然可以的,打個(gè)比方:操作單一數(shù)據(jù)庫(kù)稱為一維操作,如果操作相同結(jié)構(gòu),分布在多個(gè)服務(wù)器上的多個(gè)數(shù)據(jù)庫(kù)這個(gè)可以稱為二維操作。 我們只需要對(duì)這個(gè)二維操作進(jìn)行一層封裝,讓他支持并行運(yùn)算,把服務(wù)器壓力分散開(kāi),我們不需要寫太多東西,SQL已經(jīng)為我們封裝了很多,它就好比是一個(gè)巨人,而我們只需要站在他的肩膀上,就可以輕松實(shí)現(xiàn)針對(duì)WEB的大數(shù)據(jù)處理。
3、hadoop適不適合.NET,他有哪些缺點(diǎn)?(1)、數(shù)據(jù)同步慢 (2)、事務(wù)處理難 (3)、異常捕獲難 (4)、很難與ASP.NET結(jié)合,無(wú)論是學(xué)習(xí)學(xué)成本,還是自身的支持方面 (5)、 需要安裝,適合離線大數(shù)據(jù)處理,但未必適合WEB
4、什么是SqlSugar框架?SqlSugar是一款基于SqlSever的輕量級(jí)高性能ORM框架,除了具有和ADO.NET匹敵的性能外,現(xiàn)在已經(jīng)支持多庫(kù)并行計(jì)算。
優(yōu)點(diǎn): (1)、適合海量數(shù)據(jù)的無(wú)延遲查詢 (2)、支持分布式事務(wù) (3)、讓JOIN飛起來(lái),告別大數(shù)據(jù)NOJOIN (4)、C#.NET自家語(yǔ)法和大量封裝函數(shù) (5)、隨機(jī)存儲(chǔ),也就是說(shuō)可以存儲(chǔ)在任意一個(gè)節(jié)點(diǎn)數(shù)據(jù)庫(kù),做到真正正的負(fù)載均衡,而不是以往主從模式的讀寫分離。
缺點(diǎn): SqlServer授權(quán)費(fèi)太貴,適合有錢的公司或者不交授權(quán)費(fèi)的創(chuàng)業(yè)小企業(yè)
SqlSugar學(xué)習(xí)目錄2、使用SqlSugar處理大數(shù)據(jù) 3、使用SqlSugar實(shí)現(xiàn)Join 待更新 4、使用SqlSugar實(shí)現(xiàn)分頁(yè)+分組+多列排序 待更新 5、節(jié)點(diǎn)故障如何進(jìn)行主從調(diào)換
》》》》2、使用SqlSugar處理大數(shù)據(jù)《《《
1、SqlSugar的原理Insert: 隨機(jī)存儲(chǔ)到某個(gè)節(jié)點(diǎn)數(shù)據(jù)庫(kù)(每個(gè)節(jié)點(diǎn)可以配置處理的機(jī)率,如果設(shè)置為0表示該節(jié)點(diǎn)不會(huì)有新數(shù)據(jù)添加進(jìn)來(lái)) Update、Delete:異步請(qǐng)求所有數(shù)據(jù)庫(kù)節(jié)點(diǎn)同步匯總處理結(jié)果 Search: 對(duì)分頁(yè)前X頁(yè)、后X頁(yè)和PageCount<1000(1000這個(gè)值可以在程序中設(shè)置)的數(shù)據(jù)進(jìn)行了特殊優(yōu)化,其它數(shù)據(jù)進(jìn)行了異步節(jié)點(diǎn)算法同步對(duì)結(jié)果進(jìn)行匯,性能在多服務(wù)器架構(gòu)中可以完美的體現(xiàn)出來(lái),在單服務(wù)器架構(gòu)需要注意保證足夠IO,避免全表掃描,否則起不到優(yōu)化效果。 1、單服務(wù)器、單硬盤、多庫(kù)架構(gòu): 適合低并發(fā),數(shù)據(jù)量在1億以下,響應(yīng)速度有較高要求,建議數(shù)據(jù)量最好不要超過(guò)1000W,在查詢中避免全表掃描,充分利用io性能,讓異步的優(yōu)勢(shì)體現(xiàn)出來(lái)。 如圖: 對(duì)部署在同一臺(tái)PC機(jī)上的10個(gè)同結(jié)構(gòu)庫(kù)進(jìn)行了模糊搜索 name建了全文索引,id和num建立了復(fù)合索引 十個(gè)庫(kù)加起來(lái)總共有540萬(wàn)條數(shù)據(jù) ,普通機(jī)械硬盤 只用了0.3秒的時(shí)間。
2、單服務(wù)器、多硬盤或陣列: 可以使用LIKE等進(jìn)行全表掃描,性能有明顯的提升
3、多服務(wù)器、多庫(kù)架構(gòu) 因?yàn)榘褖毫Ψ謹(jǐn)偢鱾€(gè)節(jié)點(diǎn)所在服務(wù)器上,所以可以輕松處億級(jí)以上的數(shù)據(jù),節(jié)點(diǎn)服務(wù)器越多,處理的數(shù)據(jù)量就越大,就越快,就算是T級(jí)數(shù)據(jù),秒查也不是事兒,只需N臺(tái)廉價(jià)的PC。
2、用法1、引用SqlSugar.dll 2、配置連接字符串 其中rate是Insert時(shí)存儲(chǔ)到某節(jié)點(diǎn)的機(jī)率,0表示不會(huì)有新數(shù)據(jù)添加到該節(jié)點(diǎn),下面設(shè)置都為1表示我一點(diǎn)都不偏心 2、添、刪、改用法 3、啟用分布式事務(wù) 服務(wù)器需要開(kāi)啟MSDTC等服務(wù)
4、Taskable是所有分布式計(jì)算的底層核心 分頁(yè)、分組等復(fù)雜的查詢都從這里展開(kāi),支持DataTable、T:Class、值類型 三種類型,能夠方便的把多庫(kù)的結(jié)果同步匯總到一個(gè)容器中。 使用Taskable需要注意每個(gè)節(jié)點(diǎn)獲取的數(shù)據(jù)量都不能很大,通過(guò)少取多,內(nèi)存運(yùn)算,在取在運(yùn)算的方式處理復(fù)雜數(shù)據(jù)的查詢。
5、使用Taskable進(jìn)行分組查詢 統(tǒng)計(jì)類報(bào)表類的查詢,查詢結(jié)果集不會(huì)太大,完全可使用Taskable進(jìn)行處理,Merge方法能夠?qū)⑺袔?kù)查詢的結(jié)果集合并到一個(gè)新的集合 6、使用Taskable擴(kuò)展函數(shù),讓你處理多庫(kù)運(yùn)算更加方便。
7、分布式分頁(yè) 考慮了分庫(kù)機(jī)制,主鍵建議使用GUID來(lái)保證獨(dú)一,只有主鍵唯一才可以使用該分頁(yè)函數(shù)
至于原理我就不多講了,一個(gè)貼子也說(shuō)不完,有幸趣的朋友可以加群: 225982985 討論 源碼地址:https://github.com/sunkaixuan/SqlSugar
|
|
|
來(lái)自: 昵稱10504424 > 《工作》