mysql 基礎命令集
庫操作
show databases; 檢視庫
MariaDB [devops]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| devops |
| mysql |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
create database database_name; 建立資料庫
MariaDB [devops]> create database yunwei;
Query OK, 1 row affected (0.00 sec)
drop database database_name; 刪除資料庫
MariaDB [devops]> drop database yunwei;
Query OK, 0 rows affected (0.34 sec)
use database_name; 切換資料庫
MariaDB [devops]> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
表操作
show tables; 檢視當前庫的所有表
MariaDB [mysql]> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
....
create table table_name( 建立表
....
);
MariaDB [devops]> create table yw(
-> id int(11) not null auto_increment,
-> username varchar(20),
-> password char(32),
-> primary key(id)
-> );
Query OK, 0 rows affected (0.07 sec)
desc/describe yw; 查看錶結構 describe 和desc 返回的結果相同
MariaDB [devops]> desc yw;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| username | varchar(20) | YES | | NULL | |
| password | char(32) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)
show columns from table_name; 同上
MariaDB [devops]> show columns from yw;
+----------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+-------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| username | varchar(20) | YES | | NULL | |
| password | char(32) | YES | | NULL | |
+----------+-------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)
show create table table_name; 此命令實時反應當前表結構 ,不是後期改變了表結構它就不變的
MariaDB [devops]> show create table yw\G;
*************************** 1. row ***************************
Table: yw
Create Table: CREATE TABLE `yw` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(20) DEFAULT NULL,
`password` char(32) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
1 row in set (0.00 sec)
還有 其他方法就不一 一列出了;
drop table table_name 刪除表
MariaDB [devops]> drop table yw;
Query OK, 0 rows affected (0.04 sec)
也可以加入判斷
MariaDB [devops]> drop table if exists yw;
Query OK, 0 rows affected (0.00 sec)
欄位操作
插入
語法1:INSERT INTO 表名 vlaues (值1,值2).;
語法2:INSERT INTO 表名 (列1,列2.)values(值1,值2..);
MariaDB [devops]> insert into yw (username,password) values('yunwei',123456);
Query OK, 1 row affected (0.00 sec)
要求前面的列和 後面的值要一一對應
更新記錄
update 表名 set 列名1 = 值1,列名2 = 值2 where 列名 = 值;
MariaDB [devops]> update yw set username = 'devops' ,password = 465789 where id >= 1;
Query OK, 1 row affected (0.00 sec)
Rows matched: 1 Changed: 1 Warnings: 0
在執行影響行數的sql操作時候,一定需要注意條件是否寫錯或漏寫
查詢記錄
select 列1,列2,.. from 表名 where 條件;
MariaDB [devops]> select username,password from yw where id=1;
查詢全部
select * from 表名;
MariaDB [devops]> select * from yw;
+----+----------+----------+
| id | username | password |
+----+----------+----------+
| 1 | devops | 465789 |
| 2 | yunwei | 123456 |
+----+----------+----------+
注:生產環境 嚴禁使用 select * 否則造成慢查詢後果很嚴重
刪除記錄
delete from 表名 where 條件;
MariaDB [devops]> delete from yw where id = 1;
Query OK, 1 row affected (0.00 sec)
備份/還原 及 許可權命令 在mysql 安全及日誌管理 都有寫
檢視mysql 狀態
MariaDB [devops]> show status;
+------------------------------------------+-------------+
| Variable_name | Value |
+------------------------------------------+-------------+
| Aborted_clients | 0 |
| Aborted_connects | 1 |
| Access_denied_errors | 0 |
| Aria_pagecache_blocks_not_flushed | 0 |
| Aria_pagecache_blocks_unused | 15737 |
| Uptime | 8110 |
| Uptime_since_flush_status | 8110 |
+------------------------------------------+-------------+
413 rows in set (0.00 sec)
可以看到 413 條狀態資訊,
詳解:
Variable_name | value | scope | explained |
---|---|---|---|
Aborted_clients | 16031 | global | 由於客戶端沒有正確關閉連線導致客戶端終止而中斷的連線數 |
Aborted_connects | 2 | global | 試圖連線到MySQL伺服器而失敗的連線數 |
Binlog_cache_disk_use | 2 | global | 使用臨時二進位制日誌快取但超過binlog_cache_size值並使用臨時檔案來儲存事務中的語句的事務數量 |
Binlog_cache_use | 421723 | global | 使用臨時二進位制日誌快取的事務數量 |
Binlog_stmt_cache_disk_use | 0 | Both | |
Binlog_stmt_cache_use | 0 | ||
Bytes_received | 1248773219 | Both | 從所有客戶端接收到的位元組數 |
Bytes_sent | 3248856327 | both | 傳送給所有客戶端的位元組數 |
Com_admin_commands | 785 | ||
Com_assign_to_keycache | 0 | ||
Com_alter_db | 0 | ||
Com_alter_db_upgrade | 0 | ||
Com_alter_event | 0 | ||
Com_alter_function | 0 | ||
Com_alter_procedure | 0 | ||
Com_alter_server | 0 | ||
Com_alter_table | 0 | ||
Com_alter_tablespace | 0 | ||
Com_analyze | 0 | ||
Com_begin | 0 | ||
Com_binlog | 0 | ||
Com_call_procedure | 0 | ||
Com_change_db | 11 | ||
Com_change_master | 0 | ||
Com_check | 0 | ||
Com_checksum | 0 | ||
Com_commit | 401261 | ||
Com_create_db | 0 | ||
Com_create_event | 0 | ||
Com_create_function | 0 | ||
Com_create_index | 7 | ||
Com_create_procedure | 0 | ||
Com_create_server | 0 | ||
Com_create_table | 0 | ||
Com_create_trigger | 0 | ||
Com_create_udf | 0 | ||
Com_create_user | 0 | ||
Com_create_view | 0 | ||
Com_dealloc_sql | 0 | ||
Com_delete | 0 | ||
Com_delete_multi | 0 | ||
Com_do | 0 | ||
Com_drop_db | 0 | ||
Com_drop_event | 0 | ||
Com_drop_function | 0 | ||
Com_drop_index | 0 | ||
Com_drop_procedure | 0 | ||
Com_drop_server | 0 | ||
Com_drop_table | 0 | ||
Com_drop_trigger | 0 | ||
Com_drop_user | 0 | ||
Com_drop_view | 0 | ||
Com_empty_query | 0 | ||
Com_execute_sql | 0 | ||
Com_flush | 0 | ||
Com_grant | 0 | ||
Com_ha_close | 0 | ||
Com_ha_open | 0 | ||
Com_ha_read | 0 | ||
Com_help | 0 | ||
Com_insert | 1460169 | ||
Com_insert_select | 0 | ||
Com_install_plugin | 0 | ||
Com_kill | 5 | ||
Com_load | 0 | ||
Com_lock_tables | 0 | ||
Com_optimize | 0 | ||
Com_preload_keys | 0 | ||
Com_prepare_sql | 0 | ||
Com_purge | 0 | ||
Com_purge_before_date | 0 | ||
Com_release_savepoint | 0 | ||
Com_rename_table | 0 | ||
Com_rename_user | 0 | ||
Com_repair | 0 | ||
Com_replace | 0 | ||
Com_replace_select | 0 | ||
Com_reset | 0 | ||
Com_resignal | 0 | ||
Com_revoke | 0 | ||
Com_revoke_all | 0 | ||
Com_rollback | 668586 | ||
Com_rollback_to_savepoint | 0 | ||
Com_savepoint | 0 | ||
Com_select | 807572 | ||
Com_set_option | 36735 | ||
Com_signal | 0 | ||
Com_show_authors | 0 | ||
Com_show_binlog_events | 0 | ||
Com_show_binlogs | 0 | ||
Com_show_charsets | 0 | ||
Com_show_collations | 1301 | ||
Com_show_contributors | 0 | ||
Com_show_create_db | 0 | ||
Com_show_create_event | 0 | ||
Com_show_create_func | 0 | ||
Com_show_create_proc | 0 | ||
Com_show_create_table | 22 | ||
Com_show_create_trigger | 0 | ||
Com_show_databases | 202 | ||
Com_show_engine_logs | 0 | ||
Com_show_engine_mutex | 0 | ||
Com_show_engine_status | 0 | ||
Com_show_events | 0 | ||
Com_show_errors | 0 | ||
Com_show_fields | 171 | ||
Com_show_function_status | 10 | ||
Com_show_grants | 0 | ||
Com_show_keys | 78 | ||
Com_show_master_status | 0 | ||
Com_show_open_tables | 0 | ||
Com_show_plugins | 0 | ||
Com_show_privileges | 0 | ||
Com_show_procedure_status | 10 | ||
Com_show_processlist | 17 | ||
Com_show_profile | 0 | ||
Com_show_profiles | 0 | ||
Com_show_relaylog_events | 0 | ||
Com_show_slave_hosts | 0 | ||
Com_show_slave_status | 0 | ||
Com_show_status | 1322 | ||
Com_show_storage_engines | 2 | ||
Com_show_table_status | 12 | ||
Com_show_tables | 41 | ||
Com_show_triggers | 56 | ||
Com_show_variables | 1424 | ||
Com_show_warnings | 2 | ||
Com_slave_start | 0 | ||
Com_slave_stop | 0 | ||
Com_stmt_close | 0 | ||
Com_stmt_execute | 0 | ||
Com_stmt_fetch | 0 | ||
Com_stmt_prepare | 0 | ||
Com_stmt_reprepare | 0 | ||
Com_stmt_reset | 0 | ||
Com_stmt_send_long_data | 0 | ||
Com_truncate | 0 | ||
Com_uninstall_plugin | 0 | ||
Com_unlock_tables | 0 | ||
Com_update | 412234 | ||
Com_update_multi | 0 | ||
Com_xa_commit | 0 | ||
Com_xa_end | 0 | ||
Com_xa_prepare | 0 | ||
Com_xa_recover | 0 | ||
Com_xa_rollback | 0 | ||
Com_xa_start | 0 | ||
Compression | ON | Session | 客戶端與伺服器之間只否啟用壓縮協議 |
Connections | 37499 | global | 試圖連線到(不管是否成功)MySQL伺服器的連線數 |
Created_tmp_disk_tables | 223 | both | 伺服器執行語句時在硬碟上自動建立的臨時表的數量 |
Created_tmp_files | 52 | both | mysqld已經建立的臨時檔案的數量 |
Created_tmp_tables | 4676 | both | 伺服器執行語句時自動建立的記憶體中的臨時表的數量,如果Created_tmp_disk_tables較大,你可能要增加tmp_table_size值使臨時 表基於記憶體而不基於硬碟 |
Delayed_errors | 0 | global | 用INSERT DELAYED寫的出現錯誤的行數(可能為duplicate key)。 |
Delayed_insert_threads | 0 | global | 使用的INSERT DELAYED處理器執行緒數。 |
Delayed_writes | 0 | global | 寫入的INSERT DELAYED行數 |
Flush_commands | 2 | global | 執行的FLUSH語句數 |
Handler_commit | 5291398 | both | 內部提交語句數 |
Handler_delete | 0 | both | 行從表中刪除的次數 |
Handler_discover | 0 | both | MySQL伺服器可以問NDB CLUSTER儲存引擎是否知道某一名字的表。這被稱作發現。Handler_discover說明通過該方法發現的次數。 |
Handler_prepare | 4512578 | both | A counter for the prepare phase of two-phase commit operations. |
Handler_read_first | 268341 | both | 索引中第一條被讀的次數。如果較高,它建議伺服器正執行大量全索引掃描;例如,SELECT col1 FROM foo,假定col1有索引 |
Handler_read_key | 1286597 | both | 根據鍵讀一行的請求數。如果較高,說明查詢和表的索引正確 |
Handler_read_last | 59 | both | |
Handler_read_next | 35166067 | both | 按照鍵順序讀下一行的請求數。如果你用範圍約束或如果執行索引掃描來查詢索引列,該值增加 |
Handler_read_prev | 1601833 | both | 按照鍵順序讀前一行的請求數。該讀方法主要用於優化ORDER BY … DESC。 |
Handler_read_rnd | 20124 | both | 根據固定位置讀一行的請求數。如果你正執行大量查詢並需要對結果進行排序該值較高。你可能使用了大量需要MySQL掃描整個表的查詢或你的連線沒有正確使用鍵 |
Handler_read_rnd_next | 48760470858 | both | 在資料檔案中讀下一行的請求數。如果你正進行大量的表掃描,該值較高。通常說明你的表索引不正確或寫入的查詢沒有利用索引 |
Handler_rollback | 308415 | both | 內部ROLLBACK語句的數量 |
Handler_savepoint | 0 | both | 在一個儲存引擎放置一個儲存點的請求數量 |
Handler_savepoint_rollback | 0 | both | 在一個儲存引擎的要求回滾到一個儲存點數目 |
Handler_update | 412202 | both | 在表內更新一行的請求數 |
Handler_write | 1779011 | both | 在表內插入一行的請求數 |
Innodb_buffer_pool_pages_data | 136123 | global | 包含資料的頁數(髒或乾淨) |
Innodb_buffer_pool_pages_dirty | 90 | global | 當前的髒頁數 |
Innodb_buffer_pool_pages_flushed | 1534140 | global | 要求清空的緩衝池頁數 |
Innodb_buffer_pool_pages_free | 158551 | global | 空頁數 |
Innodb_buffer_pool_pages_misc | 1006 | global | 忙的頁數,因為它們已經被分配優先用作管理,例如行鎖定或適用的雜湊索引。該值還可以計算為Innodb_buffer_pool_pages_total - Innodb_buffer_pool_pages_free - Innodb_buffer_pool_pages_data。 |
Innodb_buffer_pool_pages_total | 295680 | global | 緩衝池總大小(頁數) |
Innodb_buffer_pool_read_ahead_rnd | 0 | global | InnoDB初始化的“隨機”read-aheads數。當查詢以隨機順序掃描表的一大部分時發生。 |
Innodb_buffer_pool_read_ahead | 19531 | ||
Innodb_buffer_pool_read_ahead_evicted | 0 | ||
Innodb_buffer_pool_read_requests | 21113636240 | global | InnoDB已經完成的邏輯讀請求數 |
Innodb_buffer_pool_reads | 88282 | global | 不能滿足InnoDB必須單頁讀取的緩衝池中的邏輯讀數量。 |
Innodb_buffer_pool_wait_free | 0 | global | 一般情況,通過後臺向InnoDB緩衝池寫。但是,如果需要讀或建立頁,並且沒有乾淨的頁可用,則它還需要先等待頁面清空。該計數器對等待例項進行記數。如果已經適當設定緩衝池大小,該值應小 |
Innodb_buffer_pool_write_requests | 12368792 | global | 向InnoDB緩衝池的寫數量。 |
Innodb_data_fsyncs | 74253 | global | fsync()運算元 |
Innodb_data_pending_fsyncs | 0 | global | 當前掛起的fsync()運算元。 |
Innodb_data_pending_reads | 0 | global | 當前掛起的讀數。 |
Innodb_data_pending_writes | 0 | global | 當前掛起的寫數。 |
Innodb_data_read | 1768591360 | global | 至此已經讀取的資料數量(位元組)。 |
Innodb_data_reads | 108048 | global | 資料讀總數量。 |
Innodb_data_writes | 1613970 | global | 資料寫總數量。 |
Innodb_data_written | 26343557632 | global | 至此已經寫入的資料量(位元組)。 |
Innodb_dblwr_pages_written | 767070 | global | 已經執行的雙寫運算元量 |
Innodb_dblwr_writes | 7475 | global | 雙寫操作已經寫好的頁數 |
Innodb_have_atomic_builtins | ON | global | |
Innodb_log_waits | 0 | global | 我們必須等待的時間,因為日誌緩衝區太小,我們在繼續前必須先等待對它清空 |
Innodb_log_write_requests | 1800108 | global | 日誌寫請求數。 |
Innodb_log_writes | 830562 | global | 向日志文件的物理寫數量。 |
Innodb_os_log_fsyncs | 25144 | global | 向日志文件完成的fsync()寫數量。 |
Innodb_os_log_pending_fsyncs | 0 | global | 掛起的日誌檔案fsync()運算元量。 |
Innodb_os_log_pending_writes | 0 | global | 掛起的日誌檔案寫操作 |
Innodb_os_log_written | 1207160320 | global | 寫入日誌檔案的位元組數。 |
Innodb_page_size | 16384 | global | 編譯的InnoDB頁大小(預設16KB)。許多值用頁來記數;頁的大小很容易轉換為位元組。 |
Innodb_pages_created | 28311 | global | 建立的頁數。 |
Innodb_pages_read | 107812 | global | 讀取的頁數。 |
Innodb_pages_written | 767070 | global | 寫入的頁數。 |
Innodb_row_lock_current_waits | 0 | global | 當前等待的待鎖定的行數。 |
Innodb_row_lock_time | 3132098728 | global | 行鎖定花費的總時間,單位毫秒。 |
Innodb_row_lock_time_avg | 45551 | global | 行鎖定的平均時間,單位毫秒。 |
Innodb_row_lock_time_max | 51930 | global | 行鎖定的最長時間,單位毫秒。 |
Innodb_row_lock_waits | 68760 | global | 一行鎖定必須等待的時間數。 |
Innodb_rows_deleted | 0 | global | 從InnoDB表刪除的行數。 |
Innodb_rows_inserted | 5766040 | global | 插入到InnoDB表的行數。 |
Innodb_rows_read | 25304573020 | global | 從InnoDB表讀取的行數。 |
Innodb_rows_updated | 412198 | global | InnoDB表內更新的行數。 |
Innodb_truncated_status_writes | 0 | global | |
Key_blocks_not_flushed | 0 | global | 鍵快取內已經更改但還沒有清空到硬碟上的鍵的資料塊數量。 |
Key_blocks_unused | 26787 | global | 鍵快取內未使用的塊數量。你可以使用該值來確定使用了多少鍵快取 |
Key_blocks_used | 1583 | global | 鍵快取內使用的塊數量。該值為高水平線標記,說明已經同時最多使用了多少塊。 |
Key_read_requests | 167263 | global | 從快取讀鍵的資料塊的請求數。 |
Key_reads | 143381 | global | 從硬碟讀取鍵的資料塊的次數。如果Key_reads較大,則Key_buffer_size值可能太小。可以用Key_reads/Key_read_requests計算快取損失率。 |
Key_write_requests | 49572 | global | 將鍵的資料塊寫入快取的請求數。 |
Key_writes | 48333 | global | 向硬碟寫入將鍵的資料塊的物理寫操作的次數。 |
Last_query_cost | 0 | global | 用查詢優化器計算的最後編譯的查詢的總成本。用於對比同一查詢的不同查詢方案的成本。預設值0表示還沒有編譯查詢。 預設值是0。Last_query_cost具有會話範圍。 |
Max_used_connections | 2256 | global | 伺服器啟動後已經同時使用的連線的最大數量。 |
Not_flushed_delayed_rows | 0 | global | 等待寫入INSERT DELAY佇列的行數。 |
Open_files | 52 | global | 開啟的檔案的數目。 |
Open_streams | 0 | global | 開啟的流的數量(主要用於記錄)。 |
Open_table_definitions | 54 | global | 快取的.frm檔案數量 |
Open_tables | 128 | global | 當前開啟的表的數量。 |
Opened_files | 96828 | global | 檔案開啟的數量。不包括諸如套接字或管道其他型別的檔案。 也不包括儲存引擎用來做自己的內部功能的檔案。 |
Opened_table_definitions | 94 | global | 已經快取的.frm檔案數量 |
Opened_tables | 1525369 | global | 已經開啟的表的數量。如果Opened_tables較大,table_cache 值可能太小。 |
Performance_schema_cond_classes_lost | 0 | global | |
Performance_schema_cond_instances_lost | 0 | global | |
Performance_schema_file_classes_lost | 0 | global | |
Performance_schema_file_handles_lost | 0 | global | |
Performance_schema_file_instances_lost | 0 | global | |
Performance_schema_locker_lost | 0 | global | |
Performance_schema_mutex_classes_lost | 0 | global | |
Performance_schema_mutex_instances_lost | 0 | global | |
Performance_schema_rwlock_classes_lost | 0 | global | |
Performance_schema_rwlock_instances_lost | 0 | global | |
Performance_schema_table_handles_lost | 0 | global | |
Performance_schema_table_instances_lost | 0 | global | |
Performance_schema_thread_classes_lost | 0 | global | |
Performance_schema_thread_instances_lost | 0 | global | |
Prepared_stmt_count | 0 | global | 當前的預處理語句的數量。 (最大數為系統變數: max_prepared_stmt_count) |
Qcache_free_blocks | 0 | global | 查詢快取內自由記憶體塊的數量。 |
Qcache_free_memory | 0 | global | 用於查詢快取的自由記憶體的數量。 |
Qcache_hits | 0 | global | 查詢快取被訪問的次數。 |
Qcache_inserts | 0 | global | 加入到快取的查詢數量。 |
Qcache_lowmem_prunes | 0 | global | 由於記憶體較少從快取刪除的查詢數量。 |
Qcache_not_cached | 0 | global | 非快取查詢數(不可快取,或由於query_cache_type設定值未快取)。 |
Qcache_queries_in_cache | 0 | global | 登記到快取內的查詢的數量。 |
Qcache_total_blocks | 0 | global | 查詢快取內的總塊數。 |
Queries | 3812538 | global | 伺服器執行的請求個數,包含儲存過程中的請求。 |
Questions | 3812538 | global | 已經發送給伺服器的查詢的個數。 |
Rpl_semi_sync_master_clients | 0 | global | |
Rpl_semi_sync_master_net_avg_wait_time | 0 | global | |
Rpl_semi_sync_master_net_wait_time | 0 | global | |
Rpl_semi_sync_master_net_waits | 0 | global | |
Rpl_semi_sync_master_no_times | 0 | global | |
Rpl_semi_sync_master_no_tx | 0 | global | |
Rpl_semi_sync_master_status | OFF | global | |
Rpl_semi_sync_master_timefunc_failures | 0 | global | |
Rpl_semi_sync_master_tx_avg_wait_time | 0 | global | |
Rpl_semi_sync_master_tx_wait_time | 0 | global | |
Rpl_semi_sync_master_tx_waits | 0 | global | |
Rpl_semi_sync_master_wait_pos_backtraverse | 0 | global | |
Rpl_semi_sync_master_wait_sessions | 0 | global | |
Rpl_semi_sync_master_yes_tx | 0 | global | |
Rpl_semi_sync_slave_status | OFF | global | |
Rpl_status | AUTH_MASTER | global | 失敗安全複製狀態(還未使用)。 |
Select_full_join | 0 | global | 沒有使用索引的聯接的數量。如果該值不為0,你應仔細檢查表的索引 |
Select_full_range_join | 0 | global | 在引用的表中使用範圍搜尋的聯接的數量。 |
Select_range | 56149 | global | 在第一個表中使用範圍的聯接的數量。一般情況不是關鍵問題,即使該值相當大。 |
Select_range_check | 0 | global | 在每一行資料後對鍵值進行檢查的不帶鍵值的聯接的數量。如果不為0,你應仔細檢查表的索引。 |
Select_scan | 272978 | global | 對第一個表進行完全掃描的聯接的數量。 |
Slave_heartbeat_period | 0 | global | 複製的心跳間隔 |
Slave_open_temp_tables | 0 | global | 從伺服器開啟的臨時表數量 |
Slave_received_heartbeats | 0 | global | 從伺服器心跳數 |
Slave_retried_transactions | 0 | global | 本次啟動以來從伺服器複製執行緒重試次數 |
Slave_running | OFF | global | 如果該伺服器是連線到主伺服器的從伺服器,則該值為ON。 |
Slow_launch_threads | 0 | global | 建立時間超過slow_launch_time秒的執行緒數。 |
Slow_queries | 48490 | global | 查詢時間超過long_query_time秒的查詢的個數。 |
Sort_merge_passes | 56 | global | 排序演算法已經執行的合併的數量。如果這個變數值較大,應考慮增加sort_buffer_size系統變數的值。 |
Sort_range | 0 | global | 在範圍內執行的排序的數量。 |
Sort_rows | 42124 | global | 已經排序的行數。 |
Sort_scan | 23 | global | 通過掃描表完成的排序的數量。 |
Table_locks_immediate | 2717991 | global | 立即獲得的表的鎖的次數。 |
Table_locks_waited | 1229 | global | 不能立即獲得的表的鎖的次數。如果該值較高,並且有效能問題,你應首先優化查詢,然後拆分表或使用複製。 |
Tc_log_max_pages_used | 0 | global | |
Tc_log_page_size | 0 | global | |
Tc_log_page_waits | 0 | global | |
Threads_cached | 39 | global | 執行緒快取內的執行緒的數量。 |
Threads_connected | 191 | global | 當前開啟的連線的數量。 |
Threads_created | 6070 | global | 建立用來處理連線的執行緒數。如果Threads_created較大,你可能要增加thread_cache_size值。快取訪問率的計算方法Threads_created/Connections。 |
Threads_running | 3 | global | 啟用的(非睡眠狀態)執行緒數。 |
Uptime | 21457 | global | 伺服器已經執行的時間(以秒為單位)。 |
Uptime_since_flush_status | 21457 | global | 最近一次使用FLUSH STATUS 的時間(以秒為單位)。 |
檢視 變數
簡介
mysqld服務維護兩種變數:全域性變數和會話變數,全域性變數影響伺服器的全域性操作,會話變數影響具體客戶端連線相關操作。
伺服器啟動時,將所有全域性變數初始化為預設值,可以在選項檔案或命令列中指定的選項來更改這些預設值,伺服器啟動後,通過連線伺服器並執行SET GLOBAL var_name語句可以更改動態全域性變數,要想更改全域性變數,必須具有SUPER許可權。
伺服器還為每個客戶端連線維護會話變數,連線時使用相應全域性變數的當前值對客戶端會話變數進行初始化,客戶可以通過SET SESSION var_name語句來更改動態會話變數,設定會話變數不需要特殊許可權,但客戶可以只更改自己的會話變數,而不更改其它客戶的會話變數。
任何訪問全域性變數的客戶端都可以看見對全域性變數的更改,但是,它隻影響在更改後連線的從該全域性變數初始化相應會話變數的客戶端,它不會影響已經連線上的客戶端的會話變數(甚至是執行SET GLOBAL語句的客戶端)。
當使用啟動選項設定變數時,變數值可以使用字尾K、M或G分別表示千位元組、兆位元組或gigabytes。
例如,下面的命令啟動伺服器時的鍵值緩衝區大小為16M(字尾的大小寫沒關係,16M和16m是一樣的):
mysqld --key_buffer_size=16M
執行時,使用SET語句來設定系統變數。此時,不能使用字尾,但值可以採取下列表達式:
mysql> SET sort_buffer_size = 10 * 1024 * 1024;
要想顯式指定是否設定全域性或會話變數,使用GLOBAL或SESSION選項:
mysql> SET GLOBAL sort_buffer_size = 10 * 1024 * 1024;
mysql> SET SESSION sort_buffer_size = 10 * 1024 * 1024;
兩個選項均沒有,則語句設定會話變數。
命令用法
mysql> show variables;
引數解析
back_log
指定MySQL可能的連線數量。當MySQL主執行緒在很短的時間內得到非常多的連線請求,該引數就起作用,之後主執行緒花些時間(儘管很短)檢查連線並且啟動一個新執行緒。
back_log引數的值指出在MySQL暫時停止響應新請求之前的短時間內多少個請求可以被存在堆疊中。如果系統在一個短時間內有很多連線,則需要增大該引數的值,該引數值指定到來的TCP/IP連線的偵聽佇列的大小。不同的作業系統在這個佇列大小上有它自己的限制。 試圖設定back_log高於你的作業系統的限制將是無效的。
當觀察MySQL程序列表,發現大量 264084 | unauthenticated user | xxx.xxx.xxx.xxx | NULL | Connect | NULL | login | NULL 的待連線程序時,就要加大 back_log 的值。back_log預設值為50。
basedir
MySQL主程式所在路徑,即:--basedir引數的值。
bdb_cache_size
分配給BDB型別資料表的快取索引和行排列的緩衝區大小,如果不使用DBD型別資料表,則應該在啟動MySQL時載入 --skip-bdb 引數以避免記憶體浪費。
bdb_log_buffer_size
分配給BDB型別資料表的快取索引和行排列的緩衝區大小,如果不使用DBD型別資料表,則應該將該引數值設定為0,或者在啟動MySQL時載入 --skip-bdb 引數以避免記憶體浪費。
bdb_home
參見 --bdb-home 選項。
bdb_max_lock
指定最大的鎖表程序數量(預設為10000),如果使用BDB型別資料表,則可以使用該引數。如果在執行大型事物處理或者查詢時發現 bdb: Lock table is out of available locks or Got error 12 from ... 錯誤,則應該加大該引數值。
bdb_logdir
指定使用BDB型別資料表提供服務時的日誌存放位置。即為 --bdb-logdir 的值。
bdb_shared_data
如果使用 --bdb-shared-data 選項則該引數值為On。
bdb_tmpdir
BDB型別資料表的臨時檔案目錄。即為 --bdb-tmpdir 的值。
binlog_cache_size
為binary log指定在查詢請求處理過程中SQL 查詢語句使用的快取大小。如果頻繁應用於大量、複雜的SQL表示式處理,則應該加大該引數值以獲得性能提升。
bulk_insert_buffer_size
指定 MyISAM 型別資料表表使用特殊的樹形結構的快取。使用整塊方式(bulk)能夠加快插入操作( INSERT ... SELECT, INSERT ... VALUES (...), (...), ..., 和 LOAD DATA INFILE) 的速度和效率。該引數限制每個執行緒使用的樹形結構快取大小,如果設定為0則禁用該加速快取功能。注意:該引數對應的快取操作只能使用者向非空資料表中執行插入操作!預設值為 8MB。
character_set
MySQL的預設字符集。
character_sets
MySQL所能提供支援的字符集。
concurrent_inserts
如果開啟該引數,MySQL則允許在執行 SELECT 操作的同時進行 INSERT 操作。如果要關閉該引數,可以在啟動 mysqld 時載入 --safe 選項,或者使用 --skip-new 選項。預設為On。
connect_timeout
指定MySQL服務等待應答一個連線報文的最大秒數,超出該時間,MySQL向客戶端返回 bad handshake。
datadir
指定資料庫路徑。即為 --datadir 選項的值。
delay_key_write
該引數只對 MyISAM 型別資料表有效。有如下的取值種類:
off: 如果在建表語句中使用 CREATE TABLE ... DELAYED_KEY_WRITES,則全部忽略DELAYED_KEY_WRITES;
on: 如果在建表語句中使用 CREATE TABLE ... DELAYED_KEY_WRITES,則使用該選項(預設);
all: 所有開啟的資料表都將按照 DELAYED_KEY_WRITES 處理。
如果 DELAYED_KEY_WRITES 開啟,對於已經開啟的資料表而言,在每次索引更新時都不重新整理帶有DELAYED_KEY_WRITES 選項的資料表的key buffer,除非該資料表關閉。該引數會大幅提升寫入鍵值的速度。如果使用該引數,則應該檢查所有資料表:myisamchk --fast --force。
delayed_insert_limit
在插入delayed_insert_limit行後,INSERT DELAYED處理模組將檢查是否有未執行的SELECT語句。如果有,在繼續處理前執行允許這些語句。
delayed_insert_timeout
一個INSERT DELAYED執行緒應該在終止之前等待INSERT語句的時間。
delayed_queue_size
為處理INSERT DELAYED分配的佇列大小(以行為單位)。如果排隊滿了,任何進行INSERT DELAYED的客戶必須等待佇列空間釋放後才能繼續。
flush
在啟動MySQL時載入 --flush 引數開啟該功能。
flush_time
如果該設定為非0值,那麼每flush_time秒,所有開啟的表將被關,以釋放資源和sync到磁碟。注意:只建議在使用 Windows9x/Me 或者當前作業系統資源嚴重不足時才使用該引數!
ft_boolean_syntax
搜尋引擎維護員希望更改允許用於邏輯全文搜尋的操作符。這些則由變數 ft_boolean_syntax 控制。
ft_min_word_len
指定被索引的關鍵詞的最小長度。注意:在更改該引數值後,索引必須重建!
ft_max_word_len
指定被索引的關鍵詞的最大長度。注意:在更改該引數值後,索引必須重建!
ft_max_word_len_for_sort
指定在使用REPAIR, CREATE INDEX, or ALTER TABLE等方法進行快速全文索引重建過程中所能使用的關鍵詞的最大長度。超出該長度限制的關鍵詞將使用低速方式進行插入。加大該引數的值,MySQL將會建立更大的臨時檔案(這會減輕CPU負載,但效率將取決於磁碟I/O效率),並且在一個排序取記憶體放更少的鍵值。
ft_stopword_file
從 ft_stopword_file 變數指定的檔案中讀取列表。在修改了 stopword 列表後,必須重建 FULLTEXT 索引。
have_innodb
YES: MySQL支援InnoDB型別資料表; DISABLE: 使用 --skip-innodb 關閉對InnoDB型別資料表的支援。
have_bdb
YES: MySQL支援伯克利型別資料表; DISABLE: 使用 --skip-bdb 關閉對伯克利型別資料表的支援。
have_raid
YES: 使MySQL支援RAID功能。
have_openssl
YES: 使MySQL支援SSL加密協議。
init_file
指定一個包含SQL查詢語句的檔案,該檔案在MySQL啟動時將被載入,檔案中的SQL語句也會被執行。
interactive_timeout
伺服器在關上它前在一個互動連線上等待行動的秒數。一個互動的客戶被定義為對mysql_real_connect()使用CLIENT_INTERACTIVE選項的客戶。也可見wait_timeout。
join_buffer_size
用於全部聯合(join)的緩衝區大小(不是用索引的聯結)。緩衝區對2個表間的每個全部聯結分配一次緩衝區,當增加索引不可能時,增加該值可得到一個更快的全部聯結。(通常得到快速聯結的最佳方法是增加索引。)
key_buffer_size
用於索引塊的緩衝區大小,增加它可得到更好處理的索引(對所有讀和多重寫),到你能負擔得起那樣多。如果你使它太大,系統將開始變慢慢。必須為OS檔案系統快取留下一些空間。為了在寫入多個行時得到更多的速度。
language
使用者輸出報錯資訊的語言。
large_file_support
開啟大檔案支援。
locked_in_memory
使用 --memlock 將mysqld鎖定在記憶體中。
log
記錄所有查詢操作。
log_update
開啟update log。
log_bin
開啟 binary log。
log_slave_updates
如果使用鏈狀同步或者多臺Slave之間進行同步則需要開啟此引數。
long_query_time
如果一個查詢所用時間超過該引數值,則該查詢操作將被記錄在Slow_queries中。
lower_case_table_names
1: MySQL總使用小寫字母進行SQL操作;
0: 關閉該功能。
注意:如果使用該引數,則應該在啟用前將所有資料錶轉換為小寫字母。
max_allowed_packet
一個查詢語句包的最大尺寸。訊息緩衝區被初始化為net_buffer_length位元組,但是可在需要時增加到max_allowed_packet個位元組。該值太小則會在處理大包時產生錯誤。如果使用大的BLOB列,必須增加該值。
net_buffer_length
通訊緩衝區在查詢期間被重置到該大小。通常不要改變該引數值,但是如果記憶體不足,可以將它設定為查詢期望的大小。(即,客戶發出的SQL語句期望的長度。如果語句超過這個長度,緩衝區自動地被擴大,直到max_allowed_packet個位元組。)
max_binlog_cache_size
指定binary log快取的最大容量,如果設定的過小,則在執行復雜查詢語句時MySQL會出錯。
max_binlog_size
指定binary log檔案的最大容量,預設為1GB。
max_connections
允許同時連線MySQL伺服器的客戶數量。如果超出該值,MySQL會返回Too many connections錯誤,但通常情況下,MySQL能夠自行解決。
max_connect_errors
對於同一主機,如果有超出該引數值個數的中斷錯誤連線,則該主機將被禁止連線。如需對該主機進行解禁,執行:FLUSH HOST;。
max_delayed_threads
不要啟動多於的這個數字的執行緒來處理INSERT DELAYED語句。如果你試圖在所有INSERT DELAYED執行緒在用後向一張新表插入資料,行將被插入,就像DELAYED屬性沒被指定那樣。
max_heap_table_size
記憶體表所能使用的最大容量。
max_join_size
如果要查詢多於max_join_size個記錄的聯合將返回一個錯誤。如果要執行沒有一個WHERE的語句並且耗費大量時間,且返回上百萬行的聯結,則需要加大該引數值。
max_sort_length
在排序BLOB或TEXT值時使用的位元組數(每個值僅頭max_sort_length個位元組被使用;其餘的被忽略)。
max_user_connections
指定來自同一使用者的最多連線數。設定為0則代表不限制。
max_tmp_tables
(該引數目前還沒有作用)。一個客戶能同時保持開啟的臨時表的最大數量。
max_write_lock_count
當出現max_write_lock_count個寫入鎖定數量後,開始允許一些被鎖定的讀操作開始執行。避免寫入鎖定過多,讀取操作處於長時間等待狀態。