偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

帶你了解MySQL系統(tǒng)變量配置基礎(chǔ)

數(shù)據(jù)庫 MySQL
個人認(rèn)為可以理解成MySQL在啟動或者運行過程中讀取的一些參數(shù)問題,利用這些參數(shù)來啟動服務(wù)、響應(yīng)或者支持用戶的請求等。

帶你了解MySQL系統(tǒng)變量配置基礎(chǔ)

MySQL變量的概念

個人認(rèn)為可以理解成MySQL在啟動或者運行過程中讀取的一些參數(shù)問題,利用這些參數(shù)來啟動服務(wù)、響應(yīng)或者支持用戶的請求等

變量的配置

如果打算長期使用,應(yīng)該寫入配置文件,而不是在***指定,因為在***設(shè)置的變量會隨著MySQL服務(wù)的重啟而恢復(fù)默認(rèn)值

另外要注意是設(shè)置的當(dāng)前Session的變量還是全局的變量。

變量單位

不同的變量的單位不同,比如table_cache是指緩存的表的個數(shù),而key_buffer_size則是以字節(jié)為單位

另外還有以頁或者百分比為單位的變量

許多變量可以通過后綴制訂單位,

比如1M表示一百萬字節(jié),在配置文件中或者在命令行下有效,

但是在使用set命令的時候,這些單位就無效,必須使用數(shù)字,單位為字節(jié)

比如:set @@session.sort_buffer_size = 1024*1024或者set @@session.sort_buffer_size = 1048576

但是配置文件中設(shè)置的時候就不能使用表達式

變量的作用域 

有些變量的作用是服務(wù)器級別的,有些是Session級別的,剩下的的一些是對象級別的。

許多回話的變量是全局變量相等,可以為是默認(rèn)值

如果改變會話級的變量,它只影響當(dāng)前Session,當(dāng)前Session關(guān)閉后當(dāng)前設(shè)置的參數(shù)會失效

舉例:

query_cache_size是全局級的

sort_buffer_size可以在全局級設(shè)置,每個Session也可以獨立設(shè)置

join_buffer_size可以在全局級設(shè)置,也可以在Session級設(shè)置,一個查詢中如果有多個表關(guān)聯(lián),可以為每個關(guān)聯(lián)分配一個join buffer

除了在配置文件中設(shè)置變量之外,(部分變量)也可以在運行時修改,MySQL稱之為動態(tài)配置變量

比如: 

set global sort_buffer_size = 1024*1024*1024

set sort_buffer_size = 1024*1024*1024

set @@sort_buffer_size = 1024*1024*1024

set @@session.sort_buffer_size = 1024*1024*1024

set @@global.sort_buffer_size = 1024*1024*1024

常見變量的設(shè)置與獲取資源說明:

key_buffer_size

為鍵緩沖區(qū)(key buffer,也叫鍵緩存key cache)分配所有指定的空間,

操作系統(tǒng)不會為該設(shè)置立馬分配內(nèi)存,而是等到使用的時候才分配。

table_cache_size

當(dāng)有線程打開表時,MySQL會檢查這個標(biāo)量的值,如果大于緩存中表的數(shù)量,線程可以把***打開的表放入緩存,

如果該值比緩存中的表數(shù)小,MySQL將從緩存中刪除不常用的表

thread_cache_size

當(dāng)有連接關(guān)閉時,MySQL檢查緩存中是否還有空間來緩存線程。

如果有:則緩存改線程已被下次連接重用

如果沒有:他講銷毀改線程而不再緩存,

緩存中使用的線程數(shù),不會立即減少,只有在新的連接刪除緩存中的一個線程并使用后才會減少

MySQL只在關(guān)閉連接時候才在緩沖中增減線程,在創(chuàng)建新的連接的時候才從緩存中刪除線程

query_cache_size

MySQL啟動的時候,一次性分配并且初始化這塊內(nèi)存,如果修改這個變量(即使設(shè)置為與當(dāng)前值一樣)

MySQL會立刻刪除所有緩存的查詢,重新分配這片緩存到指定大小,并且重新初始化內(nèi)存

read_buffer_size

MySQL只會在查詢需要時才會為該緩存分配內(nèi)存,并且會一次性分配改參數(shù)指定大小的全部內(nèi)存

read_rnd_buffer_size

MySQL只會在查詢需要時才會為該緩存分配內(nèi)存,并且只分配需要的內(nèi)存大小而不是全部指定的大小

應(yīng)該叫做,max_read_rnd_buffer_size

sort_buffer_size

MySQL只會在查詢需要做排序操作的時候拆毀為該緩存分配內(nèi)存,

一旦需要排序,MySQL就會立刻分配給改參數(shù)指定大小的全部內(nèi)存,而不管排序是否需要這么大的內(nèi)存。

由此可見,不用的變量,設(shè)置之后的啟用時間,啟用原理,生效方式等都是有一定差異的。

設(shè)置變量的潛在的影響

動態(tài)設(shè)置全局變量可能會導(dǎo)致意外的副作用。

某些變量改變后會立即生效,比如從緩沖中刷新贓塊,從而引起服務(wù)器相應(yīng)請求的一些不穩(wěn)定甚至更嚴(yán)重的問題。 

責(zé)任編輯:龐桂玉 來源: 數(shù)據(jù)分析與開發(fā)
相關(guān)推薦

2021-12-10 10:29:07

在線客服系統(tǒng)

2021-09-29 10:00:07

Go語言基礎(chǔ)

2021-10-13 10:00:52

Go語言基礎(chǔ)

2020-10-22 11:15:47

Go語言變量

2019-10-22 08:30:26

LinuxFHS進程

2018-07-02 15:18:39

Linux文件系統(tǒng)

2021-01-26 23:46:32

JavaScript數(shù)據(jù)結(jié)構(gòu)前端

2023-09-06 14:57:46

JavaScript編程語言

2018-09-04 16:20:46

MySQ索引數(shù)據(jù)結(jié)構(gòu)

2021-06-07 07:59:37

MySQL 全局鎖線程

2021-08-14 10:01:43

Python條件語句Python基礎(chǔ)

2010-10-14 11:41:03

mysql變量

2019-09-27 09:40:06

ElvishShellLinux

2010-07-05 16:20:32

NetBEUI協(xié)議

2022-09-26 11:30:40

MQTT協(xié)議客戶端協(xié)議

2018-09-17 16:30:24

數(shù)據(jù)庫MySQL小技巧

2020-08-31 10:48:11

MySQL數(shù)據(jù)庫數(shù)據(jù)庫技巧

2021-05-31 14:22:56

物聯(lián)網(wǎng)物聯(lián)網(wǎng)安全

2010-09-02 16:59:35

資源預(yù)留協(xié)議

2019-11-05 10:18:04

RPM包RPMLinux
點贊
收藏

51CTO技術(shù)棧公眾號