1. 程式人生 > >如何查詢、修改參數狀態值

如何查詢、修改參數狀態值

mage align images http 大小 mysql數據庫 datadir cnblogs mil

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裏保存。

如何查詢、修改參數狀態值