最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql系統(tǒng)變量與狀態(tài)變量詳細介紹

 更新時間:2022年09月27日 11:34:45   作者:Java面試365  
這篇文章主要介紹了Mysql系統(tǒng)變量與狀態(tài)變量詳細介紹,能夠在程序運行過程中影響Mysql程序行為的變量稱之為系統(tǒng)變量,想了解更多相關內(nèi)容的小伙伴可以參考下面文章內(nèi)容

系統(tǒng)變量

什么是Mysql系統(tǒng)變量

能夠在程序運行過程中影響Mysql程序行為的變量稱之為系統(tǒng)變量。

在Mysql中存在多個系統(tǒng)變量,可以使用show variables查看,如果直接執(zhí)行得到的結果是查詢了所有的系統(tǒng)變量,所以這個命令支持模糊匹配,

演示如下:

### 模糊搜索系統(tǒng)變量中包含conn的所有變量,精確匹配時值不包含%
mysql> show variables like '%conn%';
+-----------------------------------------------+-----------------+
| Variable_name                                 | Value           |
+-----------------------------------------------+-----------------+
| character_set_connection                      | utf8            |
| collation_connection                          | utf8_general_ci |
| connect_timeout                               | 10              |
| disconnect_on_expired_password                | ON              |
| init_connect                                  |                 |
| max_connect_errors                            | 100             |
| max_connections                               | 400             |
| max_user_connections                          | 0               |
| performance_schema_session_connect_attrs_size | 512             |
+-----------------------------------------------+-----------------+

設置系統(tǒng)變量

設置系統(tǒng)變量其實在上篇已經(jīng)聊過兩種通過啟動項配置以及my.cnf配置文件配置,演示如下

my.cnf設置配置

my.cnf文件配置;

[mysqld]
datadir=/usr/local/mysql-5.7.26/data
default-storage-engine=MyISAM
max-connections=10
### 其它配置省略

客戶端讀取:

mysql> show variables like '%datadir%';
+---------------+-------------------------------+
| Variable_name | Value                         |
+---------------+-------------------------------+
| datadir       | /usr/local/mysql-5.7.26/data/ |
+---------------+-------------------------------+
1 row in set (0.00 sec)

mysql> show variables like '%default-storage-engine%';
Empty set (0.01 sec)
#### 注意搜索系統(tǒng)變量名字的區(qū)別?。?!
mysql> show variables like '%default_storage_engine%';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | MyISAM |
+------------------------+--------+
1 row in set (0.00 sec)

注意:在MySQL客戶端讀取配置時所有系統(tǒng)變量采用的是下劃線(僅支持下劃線),而在配置文件My.cnf或者啟動配置項中采用中劃線或者下劃線是等價的,一定要注意區(qū)分?。。。。?!。

啟動項配置

服務端啟動配置

###?root用戶執(zhí)行采用配置--user=root,非root用戶不用
mysqld?--user=root?--max-connections=111

客戶端查詢系統(tǒng)變量

mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 111   |
+-----------------+-------+
1 row in set (0.00 sec)

這兩種方法都可以修改系統(tǒng)變量,但是缺點也是存在的

  • 修改完需要重啟服務端才可以生效。
  • 修改完對所有的客戶端都生效,有時單個客戶端需要有特定的系統(tǒng)變量,顯然不符合要求。

所以這里介紹第三種方式,采用set的形式修改系統(tǒng)變量。

Set的形式修改系統(tǒng)變量

在Mysql客戶端我們可以采用Set命令直接修改系統(tǒng)變量,不過需要注意的是,Set的形式修改會指定系統(tǒng)變量生效的范圍,因為當多個客戶端連接同一個服務端時可能一個系統(tǒng)變量需要作用于所有的客戶端,有的系統(tǒng)變量只需要作用于當前的客戶端即可,根據(jù)作用范圍分為如下兩種。

  • **GLOBAL:**針對所有的客戶端生效。
  • **SESSION(也被稱為local):**只對當前會話生效,其余客戶端不受影響。

顯然對于my.cnf設置配置和啟動項配置都是作用于所有的客戶端,也就是GLOBAL作用范圍,那么只針對當前客戶端的系統(tǒng)變量需要如何設置呢,

體驗如下所示:

#### 先查詢一次存儲引擎的值
mysql> show variables like '%default_storage_engine%';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | MyISAM |
+------------------------+--------+
1 row in set (0.00 sec)

mysql> set default_storage_engine=InnoDB;
Query OK, 0 rows affected (0.00 sec)

mysql> show variables like '%default_storage_engine%';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+
1 row in set (0.00 sec)

SESSION作用范圍語法

我們在使用set命令改變系統(tǒng)變量的值其實默認就是session范圍的語法,具體語法如下:

### 語法一:默認采用session
mysql> set default_storage_engine=InnoDB;
### 語法二:指定作用范圍session
mysql> set session default_storage_engine InnoDB;
### 語法三
mysql> set @@session.default_storage_engine=InnoDB;

GLOBAL作用范圍語法

global影響范圍是所有的客戶端,具體語法如下所示:

### 語法一
mysql> set global default_storage_engine=InnoDB;
### 語法二
mysql> set @@global.default_storage_engine=MyISAM;

查看系統(tǒng)變量值

從上面我們知道了Mysql中的系統(tǒng)變量分為兩種操作范圍,同樣查詢系統(tǒng)變量時也是分作用范圍查詢,查詢系統(tǒng)變量語法如下所示。

show [global|session]  variables like [匹配元素支持模糊匹配%]

默認顯示的是session作用范圍的系統(tǒng)變量。

命令演示如下:

### 查詢session當前客戶端存儲引擎的系統(tǒng)變量
mysql> show session variables like 'default_storage_engine';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+
1 row in set (0.01 sec)
### 查詢global所有客戶端存儲引擎的系統(tǒng)變量
mysql> show global  variables like 'default_storage_engine';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+
1 row in set (0.01 sec)

### 改變?nèi)窒到y(tǒng)變量【默認存儲引擎】
mysql> set global default_storage_engine=MyISAM;
Query OK, 0 rows affected (0.00 sec)

### 再次查詢?nèi)窒到y(tǒng)變量【默認存儲引擎】值,修改成功!?。。。。?!
mysql> show global  variables like 'default_storage_engine';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | MyISAM |
+------------------------+--------+
1 row in set (0.00 sec)

### 再次查詢當前客戶端【默認存儲引擎】值,沒有被修改??!
mysql> show session variables like 'default_storage_engine';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+
1 row in set (0.00 sec)

注意:當修改全局global作用范圍的系統(tǒng)變量時,session作用范圍的相同名字系統(tǒng)變量值并不會馬上修改,需要等客戶端下一次接入時才會生效,也就是說修改全局global作用范圍的系統(tǒng)變量,只會影響后續(xù)接入客戶端作用范圍為session的系統(tǒng)變量。

系統(tǒng)變量注意點

并不是所有的系統(tǒng)變量都有session范圍和global范圍

只有session范圍的系統(tǒng)變量

只有session范圍的系統(tǒng)變量,如insert_id,表示對當前客戶端表設置了自增長AUTO_INCREMENT列,插入數(shù)據(jù)的自增長id初始值,

演示如下:

### 初始值默認0
mysql> show variables like 'insert_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| insert_id     | 0     |
+---------------+-------+
1 row in set (0.00 sec)
### 設置初始值為2
mysql> set session insert_id=2;
Query OK, 0 rows affected (0.00 sec)

### 創(chuàng)建一張表,帶有自增長AUTO_INCREMENT列
mysql> CREATE TABLE tb_student(
    -> id INT(4) PRIMARY KEY AUTO_INCREMENT,
    -> name VARCHAR(25) NOT NULL
    -> );
Query OK, 0 rows affected (0.00 sec)

mysql> insert into tb_student(name) values('zhangsan');
Query OK, 1 row affected (0.00 sec)

### 自增長初始值由0變?yōu)?,設置成功??!
mysql> select * from tb_student;
+----+----------+
| id | name     |
+----+----------+
|  2 | zhangsan |
+----+----------+
1 row in set (0.00 sec)

session作用范圍的不能設置為全局系統(tǒng)變量,提示如下:

mysql> set global insert_id=2;
ERROR 1228 (HY000): Variable 'insert_id' is a SESSION variable and can't be used with SET GLOBAL

只有global范圍的系統(tǒng)變量

這類變量多為系統(tǒng)功能支持變量,如max_connections系統(tǒng)最大連接數(shù),只能采用global修改

mysql> set max_connections=123;
ERROR 1229 (HY000): Variable 'max_connections' is a GLOBAL variable and should be set with SET GLOBAL

并不是所有系統(tǒng)變量可以修改

對于絕大多數(shù)系統(tǒng)變量來講都是可以修改的,但萬事有例外,有些系統(tǒng)變量只讀,如version查看數(shù)據(jù)庫版本。

mysql> show variables like 'version';
+---------------+--------+
| Variable_name | Value  |
+---------------+--------+
| version       | 5.7.26 |
+---------------+--------+
1 row in set (0.01 sec)

### 只讀系統(tǒng)變量修改報錯
mysql> set version='1.0.0';
ERROR 1238 (HY000): Variable 'version' is a read only variable

狀態(tài)變量

系統(tǒng)變量是能夠影響程序的運行行為的變量,而狀態(tài)變量是能夠幫我們了解程序運行過程中的情況,這些狀態(tài)變量的值由程序運行過程中產(chǎn)生,不可設置,具體語法如下

show [global|session] status like  [匹配元素支持模糊匹配%]

不寫明作用范圍默認session

命令演示如下:

### 默認查詢session作用范圍的數(shù)據(jù)
mysql> show status like '%threads%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| Delayed_insert_threads | 0     |
| Slow_launch_threads    | 0     |
| Threads_cached         | 0     |
| Threads_connected      | 2     |
| Threads_created        | 2     |
| Threads_running        | 1     |
+------------------------+-------+

到此這篇關于Mysql系統(tǒng)變量與狀態(tài)變量詳細介紹的文章就介紹到這了,更多相關Mysql系統(tǒng)變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MySQL修改默認存儲引擎的實現(xiàn)方法

    MySQL修改默認存儲引擎的實現(xiàn)方法

    下面小編就為大家?guī)硪黄狹ySQL修改默認存儲引擎的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Mysql字段為null的加減乘除運算方式

    Mysql字段為null的加減乘除運算方式

    這篇文章主要介紹了Mysql字段為null的加減乘除運算方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-09-09
  • Mysql實現(xiàn)定時清空一張表的舊數(shù)據(jù)并保留幾條數(shù)據(jù)(推薦)

    Mysql實現(xiàn)定時清空一張表的舊數(shù)據(jù)并保留幾條數(shù)據(jù)(推薦)

    這篇文章主要介紹了Mysql實現(xiàn)定時清空一張表的舊數(shù)據(jù)并保留幾條數(shù)據(jù),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • 關于Mysql中文亂碼問題該如何解決(亂碼問題完美解決方案)

    關于Mysql中文亂碼問題該如何解決(亂碼問題完美解決方案)

    這篇文章給大家介紹關于Mysql中文亂碼問題該如何解決(亂碼問題完美解決方案)的相關資料,還給大家收集些關于MySQL會出現(xiàn)中文亂碼原因常見的幾點,小伙伴快來看看吧
    2015-11-11
  • MySQL數(shù)據(jù)庫索引優(yōu)化及應用

    MySQL數(shù)據(jù)庫索引優(yōu)化及應用

    本文詳細介紹了MySQL數(shù)據(jù)庫索引的基本概念、優(yōu)缺點、常見類型、使用策略、優(yōu)化技巧以及查看和分析索引使用情況的方法,通過這些內(nèi)容,讀者可以更好地理解和使用索引來優(yōu)化MySQL數(shù)據(jù)庫的性能,感興趣的朋友跟隨小編一起看看吧
    2025-11-11
  • MySQL之同表一個字段如何賦值給另一個字段

    MySQL之同表一個字段如何賦值給另一個字段

    這篇文章主要介紹了MySQL之同表一個字段如何賦值給另一個字段問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • MySQL系列之十二 備份與恢復

    MySQL系列之十二 備份與恢復

    這篇文章主要介紹了MySQL 數(shù)據(jù)備份與還原的相關知識,本文通過示例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下,希望可以幫到你們
    2021-07-07
  • MySQL取消了Query Cache的原因

    MySQL取消了Query Cache的原因

    這篇文章主要介紹了MySQL取消了Query Cache的原因,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-10-10
  • Mysql存儲引擎特性總結

    Mysql存儲引擎特性總結

    這篇文章主要介紹了Mysql存儲引擎特性總結,同時總結了最常用的2種存儲引擎的特性,以及各引擎的適用環(huán)境,需要的朋友可以參考下
    2014-07-07
  • mysql如何修改表中某個數(shù)據(jù)

    mysql如何修改表中某個數(shù)據(jù)

    這篇文章主要介紹了mysql如何修改表中某個數(shù)據(jù)的實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08

最新評論

鱼台县| 自贡市| 卓资县| 临高县| 新竹县| 珠海市| 梅州市| 营山县| 偃师市| 永福县| 榆树市| 安塞县| 南丹县| 阳泉市| 本溪| 建水县| 辉南县| 工布江达县| 双流县| 虹口区| 高密市| 瓦房店市| 贵德县| 商城县| 云林县| 汽车| 南昌市| 山阳县| 林西县| 鹿泉市| 冀州市| 新沂市| 额尔古纳市| 理塘县| 周宁县| 西林县| 乌兰浩特市| 泗水县| 玉田县| 吉首市| 阿拉善左旗|