MySQL中的SET指令簡(jiǎn)介
SET是MySQL數(shù)據(jù)庫(kù)中的一個(gè)專(zhuān)用指令,它主要是用來(lái)設(shè)置會(huì)話(huà)級(jí)別(Session-Level)的系統(tǒng)變量。SET指令可以在創(chuàng)建數(shù)據(jù)庫(kù)連接之后,在當(dāng)前會(huì)話(huà)中即時(shí)改變MySQL數(shù)據(jù)庫(kù)中的各種系統(tǒng)參數(shù)和選項(xiàng),而不用重新啟動(dòng)MySQL服務(wù)器。
SET指令格式和語(yǔ)法
SET指令的格式和語(yǔ)法比較簡(jiǎn)單,它一般是這個(gè)樣子的:
SET session_variable = value;
其中,session_variable代表需要設(shè)置的會(huì)話(huà)級(jí)別的系統(tǒng)變量名稱(chēng),而value則是這個(gè)系統(tǒng)變量需要設(shè)置的值。需要注意的是,SET指令中的value可以是整數(shù)、字符串或其他數(shù)據(jù)類(lèi)型的值。
SET指令的作用范圍
SET指令的作用范圍是當(dāng)前的會(huì)話(huà)(Session)之內(nèi),也就是說(shuō),它所設(shè)置的系統(tǒng)變量只對(duì)當(dāng)前的連接有效,其他連接不受影響。一旦會(huì)話(huà)結(jié)束,由SET指令所修改的系統(tǒng)變量也會(huì)被還原為原先的默認(rèn)值。
SET指令的使用案例
SET指令在MySQL數(shù)據(jù)庫(kù)中的應(yīng)用場(chǎng)景很多,下面就舉一個(gè)實(shí)際的例子來(lái)說(shuō)明:
比如,我們?cè)贛ySQL數(shù)據(jù)庫(kù)中運(yùn)行一些非常耗費(fèi)資源的查詢(xún)語(yǔ)句,這些查詢(xún)語(yǔ)句可能會(huì)導(dǎo)致數(shù)據(jù)庫(kù)的性能下降。但是,我們可以使用SET指令來(lái)臨時(shí)關(guān)閉MySQL的查詢(xún)緩存,這樣就可以避免查詢(xún)緩存對(duì)其他查詢(xún)語(yǔ)句的干擾:
SET SESSION query_cache_type = OFF;
通過(guò)這個(gè)SET指令,我們就可以在該會(huì)話(huà)中禁用MySQL的查詢(xún)緩存,并且不會(huì)影響到其他會(huì)話(huà)中的查詢(xún)緩存。