久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

    1. <style id="76ofp"></style>

      <style id="76ofp"></style>
      <rt id="76ofp"></rt>
      <form id="76ofp"><optgroup id="76ofp"></optgroup></form>
      1. 千鋒教育-做有情懷、有良心、有品質(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)前位置:首頁(yè)  >  技術(shù)干貨  > 存儲(chǔ)過程有什么優(yōu)缺點(diǎn),在什么情況下用存儲(chǔ)過程?

        存儲(chǔ)過程有什么優(yōu)缺點(diǎn),在什么情況下用存儲(chǔ)過程?

        來源:千鋒教育
        發(fā)布人:xqq
        時(shí)間: 2023-10-11 21:53:11 1697032391

        一、存儲(chǔ)過程

        優(yōu)點(diǎn)

        1.運(yùn)行速度:對(duì)于很簡(jiǎn)單的sql,存儲(chǔ)過程沒有什么優(yōu)勢(shì)。對(duì)于復(fù)雜的業(yè)務(wù)邏輯,因?yàn)樵诖鎯?chǔ)過程創(chuàng)建的時(shí)候,數(shù)據(jù)庫(kù)已經(jīng)對(duì)其進(jìn)行了一次解析和優(yōu)化。存儲(chǔ)過程一旦執(zhí)行,在內(nèi)存中就會(huì)保留一份這個(gè)存儲(chǔ)過程,這樣下次再執(zhí)行同樣的存儲(chǔ)過程時(shí),可以從內(nèi)存中直接調(diào)用,所以執(zhí)行速度會(huì)比普通sql快。? ??

        2.減少網(wǎng)絡(luò)傳輸:存儲(chǔ)過程直接就在數(shù)據(jù)庫(kù)服務(wù)器上跑,所有的數(shù)據(jù)訪問都在數(shù)據(jù)庫(kù)服務(wù)器內(nèi)部進(jìn)行,不需要傳輸數(shù)據(jù)到其它服務(wù)器,所以會(huì)減少一定的網(wǎng)絡(luò)傳輸。但是在存儲(chǔ)過程中沒有多次數(shù)據(jù)交互,那么實(shí)際上網(wǎng)絡(luò)傳輸量和直接sql是一樣的。而且我們的應(yīng)用服務(wù)器通常與數(shù)據(jù)庫(kù)是在同一內(nèi)網(wǎng),大數(shù)據(jù)的訪問的瓶頸會(huì)是硬盤的速度,而不是網(wǎng)速。

        3. 可維護(hù)性:的存儲(chǔ)過程有些時(shí)候比程序更容易維護(hù),這是因?yàn)榭梢詫?shí)時(shí)更新DB端的存儲(chǔ)過程。??有些bug,直接改存儲(chǔ)過程里的業(yè)務(wù)邏輯,就搞定了。?

        4.增強(qiáng)安全性:提高代碼安全,防止?SQL注入。這一點(diǎn)sql語(yǔ)句也可以做到。

        5.可擴(kuò)展性:應(yīng)用程序和數(shù)據(jù)庫(kù)操作分開,獨(dú)立進(jìn)行,而不是相互在一起。方便以后的擴(kuò)展和DBA維護(hù)優(yōu)化。

        缺點(diǎn)??

        1.SQL本身是一種結(jié)構(gòu)化查詢語(yǔ)言,但不是面向?qū)ο蟮牡?,本質(zhì)上還是過程化的語(yǔ)言,面對(duì)復(fù)雜的業(yè)務(wù)邏輯,過程化的處理會(huì)很吃力。同時(shí)SQL擅長(zhǎng)的是數(shù)據(jù)查詢而非業(yè)務(wù)邏輯的處理,如果如果把業(yè)務(wù)邏輯全放在存儲(chǔ)過程里面,違背了這一原則。

        2.如果需要對(duì)輸入存儲(chǔ)過程的參數(shù)進(jìn)行更改,或者要更改由其返回的數(shù)據(jù),則您仍需要更新程序集中的代碼以添加參數(shù)、更新調(diào)用,等等,這時(shí)候估計(jì)會(huì)比較繁瑣了。

        3.開發(fā)調(diào)試復(fù)雜,由于IDE的問題,存儲(chǔ)過程的開發(fā)調(diào)試要比一般程序困難。?????

        4.沒辦法應(yīng)用緩存。雖然有全局臨時(shí)表之類的方法可以做緩存,但同樣加重了數(shù)據(jù)庫(kù)的負(fù)擔(dān)。如果緩存并發(fā)嚴(yán)重,經(jīng)常要加鎖,那效率實(shí)在堪憂。

        5.不支持群集,數(shù)據(jù)庫(kù)服務(wù)器無法水平擴(kuò)展,或者數(shù)據(jù)庫(kù)的切割(水平或垂直切割)。數(shù)據(jù)庫(kù)切割之后,存儲(chǔ)過程并不清楚數(shù)據(jù)存儲(chǔ)在哪個(gè)數(shù)據(jù)庫(kù)中。

        使用場(chǎng)景

        存儲(chǔ)過程一定要看情況使用,用得好系統(tǒng)質(zhì)量上個(gè)臺(tái)階,用不好等著刪庫(kù)跑路。多數(shù)人不愛用,除了因?yàn)榛ヂ?lián)網(wǎng)業(yè)務(wù)簡(jiǎn)單沒必要外,還因?yàn)閙ysql這方面實(shí)在太弱而且它太流行了(我見過許多有多年開發(fā)經(jīng)驗(yàn)的人沒聽說過PG,Oracle和MS SQL倒是聽過但太貴不值當(dāng)。總之mysql讓他們錯(cuò)過太多好東西)。

        延伸閱讀:

        二、什么是存儲(chǔ)過程

        存儲(chǔ)過程,百度百科上是這樣解釋的,存儲(chǔ)過程(Stored Procedure)是在大型數(shù)據(jù)庫(kù)系統(tǒng)中,一組為了完成特定功能的SQL 語(yǔ)句集,存儲(chǔ)在數(shù)據(jù)庫(kù)中,經(jīng)過名列前茅次編譯后再次調(diào)用不需要再次編譯,用戶通過指定存儲(chǔ)過程的名字并給出參數(shù)(如果該存儲(chǔ)過程帶有參數(shù))來調(diào)用存儲(chǔ)過程。

        簡(jiǎn)單的說就是專門干一件事一段sql語(yǔ)句??梢杂蓴?shù)據(jù)庫(kù)自己去調(diào)用,也可以由java程序去調(diào)用。在oracle數(shù)據(jù)庫(kù)中存儲(chǔ)過程是procedure。

        聲明:本站稿件版權(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
        mysql inner join為什么不走索引?

        一、mysql inner join為什么不走索引因?yàn)樗饕膬?yōu)勢(shì)是在大表中過濾出小的結(jié)果集進(jìn)行聯(lián)接,mysql inner join句根本沒有任何過濾條件。另外表很小...詳情>>

        2023-10-11 23:07:14
        Geode和redis兩個(gè)分布式內(nèi)存數(shù)據(jù)庫(kù)的對(duì)比,優(yōu)缺點(diǎn)?

        一、Geode和redis兩個(gè)分布式內(nèi)存數(shù)據(jù)庫(kù)的對(duì)比兩者的定位不一樣。Geode是分布式內(nèi)存數(shù)據(jù)庫(kù),提供了可配置的一致性保證,能夠保證數(shù)據(jù)不丟失,更...詳情>>

        2023-10-11 22:50:49
        InnoDB的next-key lock為什么是左開右閉的?

        一、InnoDB的next-key lock為什么是左開右閉的InnoDB的next-key lock本身的設(shè)計(jì)方案就是左開右閉的,例如select * from t where c2 = 10 fo詳情>>

        2023-10-11 22:48:02
        到底哪些APP在用Flutter?

        一、滴滴出行滴滴出行是一款出行服務(wù)平臺(tái),提供打車、順風(fēng)車、單車等多種出行方式。在采用Flutter技術(shù)后,滴滴出行成功實(shí)現(xiàn)了Android和iOS平臺(tái)...詳情>>

        2023-10-11 22:45:35
        web前端和UI前端的區(qū)別?

        一、職責(zé)不同Web前端主要負(fù)責(zé)開發(fā)網(wǎng)站的前端部分,通過編寫代碼實(shí)現(xiàn)網(wǎng)站的用戶界面和交互功能。而UI前端(也稱為UI設(shè)計(jì)師或UI工程師)負(fù)責(zé)設(shè)計(jì)...詳情>>

        2023-10-11 22:40:09
        快速通道
        庄河市| 铜川市| 任丘市| 师宗县| 南皮县| 嘉荫县| 浠水县| 灵川县| 盱眙县| 林芝县| 柏乡县| 博白县| 沭阳县| 萨嘎县| 丹凤县| 渝中区| 桐庐县| 阳曲县| 马关县| 肇东市| 诏安县| 津南区| 抚州市| 方城县| 云安县| 渭南市| 塔河县| 崇阳县| 临朐县| 开化县| 苏尼特右旗| 克拉玛依市| 噶尔县| 昌宁县| 达日县| 华池县| 望奎县| 乳山市| 连平县| 通城县| 株洲县|