mysql 優化調試命令
1、mysqld --verbose --help
這個命令生成所有mysqld選項和可配置變量的列表
2、通過連接它并執行這個命令,可以看到實際上使用的變量的值:
mysql> SHOW VARIABLES;
還可以通過下面的語句看到運行服務器的統計和狀態指標:
mysql>SHOW STATUS;
使用mysqladmin還可以獲得系統變量和狀態信息:
shell> mysqladmin variables
shell> mysqladmin extended-status
shell> mysqladmin flush-table 命令可以立即關閉所有不使用的表并將所有使用中的表標記為已經關閉,這樣可以有效釋放大多數使用中的內存。FLUSH TABLE在關閉所有表之前不返回結果。
swap -s檢查可用交換區
mysql內存計算公式
mysql used mem = key_buffer_size + query_cache_size + tmp_table_size
+ innodb_buffer_pool_size + innodb_additional_mem_pool_size
+ innodb_log_buffer_size
+ max_connections * (
read_buffer_size + read_rnd_buffer_size
+ sort_buffer_size+ join_buffer_size
+ binlog_cache_size + thread_stack
)
在mysql 中輸入如下命令,可自動計算自己的當前配置最大的內存消耗
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
SHOW VARIABLES LIKE 'innodb_additional_mem_pool_size';
SHOW VARIABLES LIKE 'innodb_log_buffer_size';
SHOW VARIABLES LIKE 'thread_stack';
SET @kilo_bytes = 1024;
SET @mega_bytes = @kilo_bytes * 1024;
SET @giga_bytes = @mega_bytes * 1024;
SET @innodb_buffer_pool_size = 2 * @giga_bytes;
SET @innodb_additional_mem_pool_size = 16 * @mega_bytes;
SET @innodb_log_buffer_size = 8 * @mega_bytes;
SET @thread_stack = 192 * @kilo_bytes;
SELECT
( @@key_buffer_size + @@query_cache_size + @@tmp_table_size
+ @innodb_buffer_pool_size + @innodb_additional_mem_pool_size
+ @innodb_log_buffer_size
+ @@max_connections * (
@@read_buffer_size + @@read_rnd_buffer_size + @@sort_buffer_size
+ @@join_buffer_size + @@binlog_cache_size + @thread_stack
) ) / @giga_bytes AS MAX_MEMORY_GB;
mysql關鍵參數設置
Mysqld 數據庫的參數設置有兩種類型,
一種是全局參數,影響服務器的全局操作;
另一種是會話級參數,只影響當前的客戶端連接的相關操作。
服務器啟動時,所有全局參數都初始化為默認值。可以在初始化文件或命令行中指定的選項來更改這些默認值。服務器啟動后,通過連接服務器并執行 SET GLOBAL var_name 語句可以更改動態全局參數。要想更改全局參數,必須具有 SUPER 權限。全局參數的修改只對新的連接生效,已有的客戶端連接并不會生效。
服務器還可以為每個客戶端連接維護會話級參數,客戶端連接時使用相應全局參數的當前值對客戶端會話參數進行初始化。客戶可以通過 SET SESSION var_name 語句來更改動態會話參數。設置會話級參數不需要特殊權限,但每個客戶端可以只更改自己的會話級參數,不能更改其它客戶的會話級參數。
新聞熱點
疑難解答