您好,登錄后才能下訂單哦!
MySQL中有哪些系統變量,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
MySQL系統變量應用有哪些
MySQL系統變量
比如,公司的總人數,很多存儲過程都需要調用這個值,但是因為這個值,不是經常會改變的,不需要每次都count.
所以大多數人會考慮把它cache一把,那么mysql提供的全局變量,就是一個好的存儲場所.
2,數據庫配置中心
首先,這不一定是一種好的解決方式,特別是大型地分布式系統.但是想到了,就跟大家分享一下.
主要就是利用了三層,四層架構的系統,必不可少的數據庫層來實現的.
大家知道,應用的配置,大多數是用配置文件或配置服務器來實現,前者需要跟著項目打包,部署.
后者,只要在應用初始化或運行時,去配置中心取配置就行了.(淘寶這邊兩者都在用)
而數據庫的配置中心,其實類似配置服務器,只不過靈活運用了mysql的變量機制.
它能繼承配置服務器的多數優點,但最大的特色就是在sql,function,procedure里都可以很方便地引用到.(相比用表的方式,要方便一些)
并且本身就具有緩存,移植得話,mysql得導出也是很快.
所以小系統,想快速得搭建一個配置中心,利用mysql感覺還是不錯的.
調用語法:
select*fromuser_infowhereid=@@global.admin_id--例子,通過全局里配置的管理員id來取用戶信息
以下是全局變量的一些常用命令,比較簡單:
setglobalauto_increment_increment=1;--設置序列的增長值
showglobalvariables;--顯示所有的global變量
showglobalvariableslike'%test%'--查詢包含test字符串的global變量
會話系統變量,主要用于在當前客戶端連接的生命周期內.它的變量值是全局變量的一份拷貝.
如果連接斷開,對當前會話變量所做修改都會被重置.
比如,服務器會話變量autocommit默認為true,而你在非常連的客戶端連接里設置了false,那么在執行完sql后,連接就會斷開.此后,如果創建新的連接來執行sql,autocommit又會默認true.
會話變量的使用場景與全局類似,只是生命周期不同,因此可以用來統計同一連接內請求sql次數,sql類型等信息.
session變量的一些常用操作:
setsessionauto_increment_increment=1;--設置序列的增長值
showvariables;orshowsessionvariables;--如果不指明,默認使用session變量
showvariableslike'%test%'orshowsessionvariableslile'%test%'--查詢包含test字符串的session變量。
MySQL系統變量怎么使用
MySQL可以訪問許多系統和連接變量。當服務器運行時許多變量可以動態更改。這樣通常允許你修改服務器操作而不需要停止并重啟服務器。
mysqld服務器維護兩種MySQL系統變量。全局變量影響服務器整體操作。會話變量影響具體客戶端連接的操作。
當服務器啟動時,它將所有全局變量初始化為默認值。這些默認值可以在選項文件中或在命令行中指定的選項進行更改。服務器啟動后,通過連接服務器并執行SETGLOBALvar_name語句,可以動態更改這些全局變量。要想更改全局變量,必須具有SUPER權限。
服務器還為每個連接的客戶端維護一系列會話變量。在連接時使用相應全局變量的當前值對客戶端的會話變量進行初始化。對于動態會話變量,客戶端可以通過SETSESSIONvar_name語句更改它們。設置會話變量不需要特殊權限,但客戶端只能更改自己的會話變量,而不能更改其它客戶端的會話變量。
對于全局變量的更改可以被訪問該全局變量的任何客戶端看見。然而,它只影響更改后連接的客戶的從該全局變量初始化的相應會話變量。不影響目前已經連接的客戶端的會話變量(即使客戶端執行SETGLOBAL語句也不影響)。
可以使用幾種語法形式來設置或檢索全局或會話變量。下面的例子使用了sort_buffer_sizeas作為示例變量名。
要想設置一個GLOBAL變量的值,使用下面的語法:
mysql>SETGLOBALsort_buffer_size=value;
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。