翻譯|使用教程|編輯:吳園園|2020-05-12 10:51:20.523|閱讀 334 次
概述:在今天的文章中,我們了解到您應該將自定義函數代碼放置在最能受益于該技術優勢的位置:在需要復雜過程處理的應用程序中以及在需要SQL的數據庫中。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
Navicat Premium是一個可連接多種數據庫的管理工具,它可以讓你以單一程序同時連接到MySQL、Oracle及PostgreSQL數據庫,讓管理不同類型的數據庫更加的方便。
確定是在數據庫中還是在應用程序代碼中創建函數可能是一項艱巨的任務。常常,您不會意識到自己做出了錯誤的選擇,直到制作一個面對面的麻煩為止。更糟糕的是,許多開發人員的決定都是基于對SQL或應用程序編碼最熟悉的!更好的方法是依靠技術的優勢來指導您的決策。在今天的博客中,我們將在用戶定義函數(UDF)和駐留在應用程序端的函數之間進行選擇時細分決策過程。
數據庫功能
數據庫可以完成某些事情,并且會遇到困難。像存儲過程一樣,函數是用SQL編寫的。因此,它們將在SQL出色的任務上表現出色。這是此類任務的列表,以及為什么最好用SQL而不是應用程序代碼來完成這些任務:
嘗試執行上述任何操作而不是依賴SQL不可避免地導致編寫大量代碼并降低效率,這轉化為更多代碼進行調試和維護以及較差的應用程序性能。
另一方面,DBMS不能勝任復雜的過程處理。那就是應用程序代碼的領域。這是集成開發環境(IDE)的調試功能(例如VS Code或Eclipse)遠遠優于數據庫開發環境中的任何功能的重要原因。
案例研究
該Sakila樣例數據庫開發作為一種學習工具,并已廣泛應用于整個數據庫社區共享。這是一個MySQL數據庫,其中包含與虛構的視頻租賃商店有關的許多表,視圖,存儲過程和功能。這些功能之一被稱為stocker_in_stock。這是一個UDF,它接受一個stock_id并返回一個布爾值,指示該膠片是否有庫存。
這是Navicat Premium的函數設計器中的ventory_in_stock函數定義:
讓我們快速運行它以了解其工作原理。
單擊執行按鈕將彈出一個對話框,以接受輸入參數:
結果如下:
現在,考慮如果我們用駐留在應用程序中的功能替換該功能會發生什么。它需要對數據庫進行兩次調用以執行SQL語句。這將導致額外的網絡流量,并要求我們在應用程序內維護SQL。通常,這是一個壞習慣,因為它將數據庫和應用程序代碼混合在一起。
有興趣了解有關更多信息嗎?您可以免費試用14天,以進行評估!有想要購買正版授權的朋友,歡迎
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: