如何查詢、修改參數狀態值
Q:何為“數據庫”?
A:
也就是說數據庫實例,“數據庫” = 數據庫軟件 + 數據庫:存於磁盤中
1、數據庫裏面存表:放置在datadir目錄下
mysql> show variables like ‘datadir‘;
+---------------+----------+
| Variable_name | Value |
+---------------+----------+
| datadir | /mydata/ |
+---------------+----------+
2、軟件是用來管理數據庫的:放置在basedir目錄下
mysql> show variables like ‘basedir‘;
+---------------+------------------+
| Variable_name | Value |
+---------------+------------------+
| basedir | /usr/local/mysql |
+---------------+------------------+
3、數據庫工作原理概述
用戶連接到數據庫裏,對數據庫進行操作,將磁盤裏數據庫中的數據讀取到內存中(物理讀),內存中的數據被用戶讀取(內存讀),內存讀的速度(基本可忽略)是物理讀的速度的好幾萬倍。
數據庫之所以快的原因是,數據庫有一個大的內存作為緩存,少了對磁盤文件的讀取,也就將速度降下來了。
MySQL啟動之後,先會在內存裏分配一小塊空間作為用戶工作空間,夠用即可;隨著用戶對數據庫的使用,空間逐漸擴張,最大到innodb_buffer_pool_size 的數值大小(該空間大小至少可占物理內存的一半以上,一般設置為服務器物理內存的70%)。
那麽問題來了,如何對MySQL數據庫中的參數、狀態值進行查詢、修改呢?
1、參數狀態值的查詢與修改
在官方文檔的Server Option / Variable Reference部分,進行參考查看MySQL的參數變量以及狀態值
1、cmd-line表示能否在mysql安全啟動(mysqld_safe)的命令行中進行參數設置 --var_name=……
2、option file表示能否在mysql的參數文件(my.cnf)中進行參數設置
3、system var表示是否是系統變量@@:全局、會話
4、status var表示是否是狀態變量
5、var scope表示變量的範圍:全局global、會話session、both表示既可以是作為全局級別的,也可以作為會話級別的
6、dynamic表示是否是動態參數,yes是動態,no是靜態,varies是根據數據庫版本而定
2、使用官方文檔來參考MySQL的變量參數、狀態參數:
1、名字
2、作用
3、修改值的範圍
4、單位
5、是否需要重啟
6、默認值的大小
7、作用域
註意:
如果是全局系統變量的修改的話,最好是在mysql> set @@global.var_name=…; 修改完後,將global.var_name=…變量的修改同時寫入參數文件中,也就是MySQL的配置文件my.cnf裏保存。
如何查詢、修改參數狀態值