MySQL的預編譯功能

2022-07-02 04:09:08 字數 1209 閱讀 7254

預編譯的好處

大家平時都使用過jdbc中的

preparedstatement

介面,它有預編譯功能。什麼是預編譯功能呢?它有什麼好處呢?

當客戶傳送一條sql語句給伺服器後,伺服器總是需要校驗

sql語句的語法格式是否正確,然後把

sql語句編譯成可執行的函式,最後才是執行

sql語句。其中校驗語法,和編譯所花的時間可能比執行

sql語句花的時間還要多。

如果我們需要執行多次insert語句,但只是每次插入的值不同,

mysql

伺服器也是需要每次都去校驗

sql語句的語法格式,以及編譯,這就浪費了太多的時間。如果使用預編譯功能,那麼只對

sql語句進行一次語法校驗和編譯,所以效率要高。

mysql執行預編譯

mysql執行預編譯分為如三步:

l 執行預編譯語句,例如:prepare myfun from 'select * from t_book where bid=?'

l 設定變數,例如:set @str='b1'

l 執行語句,例如:execute myfun using @str

如果需要再次執行myfun,那麼就不再需要第一步,即不需要再編譯語句了:

l 設定變數,例如:set @str='b2'

l 執行語句,例如:execute myfun using @str

通過檢視mysql日誌可以看到執行的過程:

使用statement執行預編譯

使用statement執行預編譯就是把上面的

sql語句執行一次。

connection con = jdbcutils.getconnection();

statement stmt = con.createstatement();

stmt.executeupdate("prepare myfun from 'select * from t_book where bid=?'");

stmt.executeupdate("set @str='b1'");

resultset rs = stmt.executequery("execute myfun using @str");

while(rs.next()) ;dbq=mdb\\mydb.mdb

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

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

MySQL的預編譯功能

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

MySQL的預編譯功能

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