MySQL的預編譯

2021-10-03 23:00:39 字數 856 閱讀 4097

1、很多情況下,一條sql語句可能會反覆執行,或者每次執行的時候只有個別的值不同

2、比如query的where條件的值不同,update的set的值不同,insert的values值不同,都會造成sql語句的不同。

3、每次因為這些值的不同就進行詞法語**析優化、制定執行計畫,就會很影響效率

4、而且往往  步驟 1、2 加起來的時間比  步驟 3的時間還要長。

這種情況下就需要預編譯的出場了。

1、預編譯:指的是資料庫驅動在傳送 sql 語句和引數給 dbms 之前對 sql 語句進行編譯,這樣 dbms 執行 sql 時,就不需要重新編譯。

2、預編譯的好處:

1、預編譯之後的 sql 多數情況下可以直接執行,dbms 不需要再次編譯。

2、越複雜的sql,編譯的複雜度將越大,預編譯階段可以合併多次操作為乙個操作。

3、相同的預編譯 sql 可以重複利用。(把乙個 sql 預編譯後產生的 preparedstatement 物件快取下來,

下次對於同乙個 sql,可以直接使用這個快取的 preparedstate 物件。)

4、可以將這類sql語句中的值用佔位符替代,不需要每次編譯,可以直接執行,

只需執行的時候,直接將每次請求的不同的值設定到佔位符的位置。

5、預編譯可以視為將sql語句模板化或者說引數化。

mybatis 在呼叫 connection 進行 sql 預編譯之前,會對sql語句進行動態解析,動態解析主要包含如下的功能:

注: mybatis 預設情況下,將對所有的 sql 進行預編譯。

mysql 預編譯的好處 MySQL的預編譯功能

1 預編譯的好處 大家平時都使用過jdbc中的preparedstatement介面,它有預編譯功能。什麼是預編譯功能呢?它有什麼好處呢?當客戶傳送一條sql語句給伺服器後,伺服器總是需要校驗sql語句的語法格式是否正確,然後把sql語句編譯成可執行的函式,最後才是執行sql語句。其中校驗語法,和編...

mysql怎麼實現預編譯 MySQL預編譯功能詳解

1 預編譯的好處 大家平時都使用過jdbc中的preparedstatement介面,它有預編譯功能。什麼是預編譯功能呢?它有什麼好處呢?當客戶傳送一條sql語句給伺服器後,伺服器總是需要校驗sql語句的語法格式是否正確,然後把sql語句編譯成可執行的函式,最後才是執行sql語句。其中校驗語法,和編...

mysql 預編譯 MySQL預編譯功能詳解

1 預編譯的好處 大家平時都使用過jdbc中的preparedstatement介面,它有預編譯功能。什麼是預編譯功能呢?它有什麼好處呢?當客戶傳送一條sql語句給伺服器後,伺服器總是需要校驗sql語句的語法格式是否正確,然後把sql語句編譯成可執行的函式,最後才是執行sql語句。其中校驗語法,和編...