慕尼黑的夜晚無(wú)繁華
2019-12-21 12:57:36
我們正在一個(gè)新項(xiàng)目的開(kāi)始,我們真的想知道我們是否應(yīng)該在MySQL中使用存儲(chǔ)過(guò)程。我們將僅使用存儲(chǔ)過(guò)程來(lái)插入和更新業(yè)務(wù)模型實(shí)體。有幾個(gè)表代表一個(gè)模型實(shí)體,我們將在那些存儲(chǔ)過(guò)程的插入/更新中對(duì)其進(jìn)行抽象。另一方面,我們可以從Model層調(diào)用插入和更新,但是不能在MySQL中,而是在PHP中。根據(jù)您的經(jīng)驗(yàn),哪個(gè)是最佳選擇??jī)煞N方法的優(yōu)點(diǎn)和缺點(diǎn)。就高性能而言,哪個(gè)是最快的?PS:這是一個(gè)大多數(shù)閱讀的Web項(xiàng)目,而高性能是最重要的要求。
3 回答

函數(shù)式編程
TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
與編程代碼不同,它們:
使得SQL注入攻擊幾乎是不可能的(除非您正在 從過(guò)程內(nèi)部
構(gòu)造和執(zhí)行動(dòng)態(tài)
SQL)作為標(biāo)注的一部分,要求通過(guò)IPC發(fā)送的數(shù)據(jù)少得多
使數(shù)據(jù)庫(kù)能夠獲得更好的緩存計(jì)劃和結(jié)果集(由于其內(nèi)部緩存結(jié)構(gòu),這在MySQL中顯然不那么有效)
可以很容易地進(jìn)行隔離測(cè)試(即不作為JUnit測(cè)試的一部分)
在它們?cè)试S您使用特定于數(shù)據(jù)庫(kù)的功能的意義上是可移植的,這些功能被抽象在過(guò)程名稱之后(在代碼中,您陷入了通用SQL類型的東西)
幾乎永遠(yuǎn)不會(huì)比從代碼調(diào)用的SQL慢
但是,正如波西米亞人所說(shuō),它也有很多弊端(這只是提供了另一個(gè)觀點(diǎn))。在決定最適合自己的東西之前,您可能必須先進(jìn)行基準(zhǔn)測(cè)試。
添加回答
舉報(bào)
0/150
提交
取消