千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > 幾千張表的SQL數(shù)據(jù)庫怎么設(shè)計(jì)持久層?

幾千張表的SQL數(shù)據(jù)庫怎么設(shè)計(jì)持久層?

來源:千鋒教育
發(fā)布人:xqq
時(shí)間: 2023-10-14 01:03:45 1697216625

一、幾千張表的SQL數(shù)據(jù)庫怎么設(shè)計(jì)持久層

這個(gè)項(xiàng)目應(yīng)該是先有成型的數(shù)據(jù)庫,再開始做上層軟件開發(fā)的。如果我猜的沒錯(cuò)的話,是不是原軟件系統(tǒng)打算升級(jí),或者從CS轉(zhuǎn)BS模式。

如果這樣的話,標(biāo)簽中的hibernate框架肯定是不合適的。各種考慮下mybatis幾乎是你少數(shù)的選擇。

首先你應(yīng)該對(duì)你們公司的業(yè)務(wù)進(jìn)行分析。從應(yīng)用層的角度抽象出你需要的實(shí)體bean。

有2000多張表,怎么看都是個(gè)很重要的大項(xiàng)目,可維護(hù)性是名列前茅位,所以不要怕麻煩。分析你的bean,哪些是易于變動(dòng)的,哪些是相對(duì)固定的。在此基礎(chǔ)上,你需要設(shè)計(jì)數(shù)據(jù)庫的View 和 存儲(chǔ)過程。

這些都做好之后, 用SQL語句(包括存儲(chǔ)過程調(diào)用)把實(shí)體Bean和數(shù)據(jù)關(guān)聯(lián)起來。然后用mybatis框架做好SQL語句的管就好了。

最后記住,大項(xiàng)目是不可能一步做好的,做好長期重構(gòu)和維護(hù)的準(zhǔn)備,另外文檔寫好,不光是給別人看,也是給自己看。能記住自已半年前的代碼思路的人,那記憶已經(jīng)是極好的了。

延伸閱讀:

二、并發(fā)鎖

在一定條件下,MyISAM也支持查詢和操作的并發(fā)進(jìn)行。
MyISAM存儲(chǔ)引擎有一個(gè)系統(tǒng)變量concurrent_insert,專門用以控制其并發(fā)插入的行為,其值分別可以為0、1或2。
當(dāng)concurrent_insert設(shè)置為0時(shí),不允許并發(fā)插入。
當(dāng)concurrent_insert設(shè)置為1時(shí),如果MyISAM允許在一個(gè)讀表的同時(shí),另一個(gè)進(jìn)程從表尾插入記錄。這也是MySQL的默認(rèn)設(shè)置。
當(dāng)concurrent_insert設(shè)置為2時(shí),無論MyISAM表中有沒有空洞,都允許在表尾插入記錄,都允許在表尾并發(fā)插入記錄。
可以利用MyISAM存儲(chǔ)引擎的并發(fā)插入特性,來解決應(yīng)用中對(duì)同一表查詢和插入鎖爭(zhēng)用。例如,將concurrent_insert系統(tǒng)變量為2,總是允許并發(fā)插入;同時(shí),通過定期在系統(tǒng)空閑時(shí)段執(zhí)行OPTIONMIZE TABLE語句來整理空間碎片,收到因刪除記錄而產(chǎn)生的中間空洞。

聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
汽車行業(yè)什么工作會(huì)用到MATLAB?

MATLAB在汽車行業(yè)的應(yīng)用MATLAB是一種用于算法開發(fā)、數(shù)據(jù)可視化、數(shù)據(jù)分析和數(shù)值計(jì)算的高級(jí)語言和交互式環(huán)境。在汽車行業(yè)中,MATLAB的應(yīng)用非常廣...詳情>>

2023-10-14 02:45:08
紅帽RHEL8和7有什么區(qū)別?

一、軟件包管理器的區(qū)別軟件包管理器是操作系統(tǒng)中管理軟件包的工具,RHEL 8和7在軟件包管理器方面有一些重要的區(qū)別:RHEL 8采用了新的軟件包管...詳情>>

2023-10-14 02:41:24
什么是軟件即服務(wù)(SaaS)?

一、軟件即服務(wù)(SaaS)的定義軟件即服務(wù)(SaaS)是一種基于云計(jì)算的軟件交付模式,用戶可以通過訂閱或按需使用這些應(yīng)用程序。在傳統(tǒng)模式下,軟...詳情>>

2023-10-14 02:39:43
oracle怎么樣實(shí)現(xiàn)數(shù)據(jù)庫跨機(jī)房同步?

一、oracle怎么樣實(shí)現(xiàn)數(shù)據(jù)庫跨機(jī)房同步除了使用第三方工具,Oracle提供了extended cluster可以實(shí)現(xiàn)類似的功能,使用Oracle RAC + ASM。簡(jiǎn)單說下...詳情>>

2023-10-14 01:57:43
web網(wǎng)站性能測(cè)試的常用指標(biāo)有哪些?

一、頁面加載時(shí)間頁面加載時(shí)間是衡量網(wǎng)站性能的重要指標(biāo)之一,它指的是從用戶請(qǐng)求一個(gè)頁面到頁面完全加載完成所需的時(shí)間。頁面加載時(shí)間的長短直...詳情>>

2023-10-14 01:50:34