原創|行業資訊|編輯:龔雪|2015-10-16 16:18:54.000|閱讀 303 次
概述:通過對比Oracle、SQL Server、PostgreSQL和MySQL解決預備語句的方法,我們更好的了解到MySQL如何以數據庫性能為出發點進行工作的。緩存語句對應用程序性能有顯著影響。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
通過對比Oracle、SQL Server、PostgreSQL和MySQL解決預備語句的方法,我們更好的了解到MySQL如何以數據庫性能為出發點進行工作的。
通常,預備語句的方式有兩種:服務器端和客戶端。
服務器端預備語句是最常見的形態,它需要兩個數據回路:
如果數據庫不進行預備語句的緩存,額外的數據回路將會影響性能。為此,一些數據庫系統不默認執行服務器端的預備語句,而是執行客戶端的預備語句。
為了使服務器端的預備語句可行,必須啟用useServerPrepStmts屬性。
在客戶端的預備語句,綁定參數標記將先于實際參數發送到數據庫服務器。這樣,驅動程序就可以通過單個請求來獲取結果集。
在高性能的OLTP系統中,語句緩存在緩解處理延遲中起到了非常重要的作用。為了避免多次準備一個語句,MySQL驅動程序提供了客戶端的語句緩存。默認狀態下被禁用,可以使用cachePrepStmtsConnection屬性激活該功能。
對于客戶端的語句,被標記的語句結構可以在不同的預備語句調用中使用。綁定了一個數據庫連接的緩存,當使用一個連接池時,物理接連周期將跨過多個應用級事物處理時間(所以緩存會為頻繁執行語句提供便利)。
對于服務器端的語句,驅動程序對服務器端預備語句進行緩存,同樣還有服務器端語句支持的緩存(并非所有語句都可以在服務器端進行預處理)。
總之,緩存語句對應用程序性能有顯著影響。
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn