MySQL中show语法使用总结
在 mysql 中执行系统命令
如何在mysql的命令行界面操作底层系统呢?只需要在mysql命令行界面使用system + linux命令即可。
命令,如:
mysql> system pwd
/root/soft
mysql> system ls;
ip-3.1.
MySQL中 show 语法的使用:
mysql> select version();
+------------+
| version() |
+------------+
| 5.6.16-log |
+------------+
1 row in set (0.00 sec)
帮助查看:
mysql> help show
mysql> help SHOW TABLE;
mysql> help SHOW WARNINGS
1.显示mysql中所有数据库的名称.
mysql>show databases;
2.显示当前数据库中所有表的名称
mysql>show tables;
或
mysql>show tables from database_name;
3.显示表中列名称
mysql>show columns from database_name.table_name;
4.查看某MySQL用户的使用权限
mysql>show grants for user_name;
5.显示create database 语句是否能够创建指定的数据库,并可以查看到创建库语句的SQL信息。
mysql>show create database database_name;
6.显示create table 语句是否能够创建指定的数据表,并可以查看到表创建语句的SQL信息。
mysql>show create table table_name;
7.显示安装以后可用的存储引擎和默认引擎。
mysql>show engines;
8.显示最后一个执行的语句所产生的错误、警告和通知
mysql> show warnings;
9.只显示最后一个执行语句所产生的错误
mysql>show errors;
10.显示系统中正在运行的所有进程,也就是当前正在执行的查询.
mysql> show processlist\G
11.查看所有存储过程。
mysql> show procedure status;
12.查看某个存储过程内容
show create procedure 存储过程名称;
13.查看函数的内容.
show create function func_name;
......
由于这几个show指令的参数太多,这里单独进行解析.
使用 show status 查看MySQL服务器状态信息.
有些时候我们需要了解MySQL的服务器状态信息,譬如当前MySQL启动后的运行时间,当前MySQL的客户端会话连接数,当前MySQL服务器执行的慢查询数,当前MySQL执行了多少SELECT语句、执行了多少UPDATE/DELETE/INSERT语句等统计信息,从而便于我们根据当前MySQL服务器的运行状态进行对应的调整或优化工作。
在MySQL中,我们可以使用SHOW STATUS指令语句来查看MySQL服务器的状态信息。下面,我们以DOS命令窗口的形式连接MySQL,并执行show status;指令,我们将看到如下显示信息:
---执行show status指令显示的部分结果---
+-----------------------------------------------------------------+--------------------------+
| Variable_name | Value |
+-----------------------------------------------------------------+--------------------------+
| Aborted_clients | 737
| Tokudb_FILESYSTEM_PREAD_NUM | 16 |
| Tokudb_FILESYSTEM_PREAD_BYTES | 8192 |
| Tokudb_FILESYSTEM_LONG_PREAD_TIME | 0 |
| Tokudb_FILESYSTEM_LONG_PREAD_NUM | 0 |
| Uptime | 2697503 |
| Uptime_since_flush_status | 2697503
当我们执行show status语句时,MySQL将会列出多达300多条的状态信息记录,其中包括了供我们查看了解的各种信息。不过,如果直接使用show status指令得到300多条记录,会让我们看得眼花缭乱,因此我们希望能够按需查看一部分状态信息。这个时候,我们可以在show status语句后加上对应的like子句。
例如:
--查询当前MySQL本次启动后的运行统计时间.
mysql> show status like 'uptime';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| Uptime | 2698122 |
+---------------+---------+
1 row in set (0.00 sec)
--查询本次MySQL启动后执行的SELECT语句的次数.
mysql> show status like 'com_select';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| Com_select | 2 |
+---------------+-------+
1 row in set (0.00 sec)
此外,与WHERE子句中的LIKE关键字类似,show status后的LIKE关键字也可以使用'_' 或'%'等通配符来进行模糊匹配。例如我们可以执行如下语句来查看MySQL服务器的线程信息:
mysql> show status like 'Thread_%';
+-------------------------+-------+
| Variable_name | Value |
+-------------------------+-------+
| Threadpool_idle_threads | 0 |
| Threadpool_threads | 0 |
| Threads_cached | 11 |
| Threads_connected | 1 |
| Threads_created | 15 |
| Threads_rejected | 0 |
| Threads_running | 3 |
+-------------------------+-------+
7 rows in set (0.00 sec)
值得注意的是,在上述show status like 'com_select'指令的执行示例中,显示的SELECT语句统计信息仅仅表示当前会话连接执行的SELECT语句数量。因为,show status指令的完整语法如下:
SHOW [统计范围] STATUS [LIKE '状态项名称']
--统计范围关键字分为GLOBAL和SESSION(或LOCAL)两种。
在show status的完整语法中,"[]"中的部分是可选的,如果我们的show status语句中不包含统计范围关键字,则默认统计范围为SESSION,也就是只统计当前连接的状态信息。如果我们需要查询自当前MySQL启动后所有连接执行的SELECT语句总数,我们可以执行如下语句:
mysql> show global status like 'com_select';
以上即是show status的详细用法。由于show status的状态统计项较多,我们就不再一一解释每个统计项的具体含义,在这里,我们仅列出部分常用的状态信息查看语句:
--查看MySQL本次启动后的运行时间(单位:秒)
show status like 'uptime'; --查看select语句的执行数
show [global] status like 'com_select'; --查看insert语句的执行数
show [global] status like 'com_insert'; --查看update语句的执行数
show [global] status like 'com_update'; --查看delete语句的执行数
show [global] status like 'com_delete'; --查看试图连接到MySQL(不管是否连接成功)的连接数
show status like 'connections'; --查看线程缓存内的线程的数量。
show status like 'threads_cached'; --查看当前打开的连接的数量。
show status like 'threads_connected'; --查看当前打开的连接的数量。
show status like 'threads_connected'; --查看创建用来处理连接的线程数。如果Threads_created较大,你可能要增加thread_cache_size值。
show status like 'threads_created'; --查看激活的(非睡眠状态)线程数。
show status like 'threads_running'; --查看立即获得的表的锁的次数。
show status like 'table_locks_immediate'; --查看不能立即获得的表的锁的次数。如果该值较高,并且有性能问题,你应首先优化查询,然后拆分表或使用复制。
show status like 'table_locks_waited'; --查看创建时间超过slow_launch_time秒的线程数。
show status like 'slow_launch_threads'; --查看查询时间超过long_query_time秒的查询的个数。
show status like 'slow_queries';
使用 SHOW INDEX 语法 查看表的索引状态
语法:
SHOW INDEX FROM [tb_name]
执行后结果如下:
mysql> SHOW INDEX FROM l_yy\G
*************************** 1. row ***************************
Table: l_yy
Non_unique: 0
Key_name: PRIMARY
Seq_in_index: 1
Column_name: id
Collation: A
Cardinality: 8556
Sub_part: NULL
Packed: NULL
Null:
Index_type: BTREE
Comment:
Index_comment:
1 row in set (0.00 sec)
show index 返回字段解析:
· Table 表的名称。 · Non_unique
如果索引不能包括重复词,则为0。如果可以,则为1。
· Key_name 索引的名称。
· Seq_in_index 索引中的列序列号,从1开始。 · Column_name 列名称。 · Collation
列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分类). · Cardinality 索引中唯一值的数目的估计值。通过运行ANALYZE TABLE或myisamchk -a可以更新. · Sub_part
如果列只是被部分地编入索引,则为被编入索引的字符的数目。如果整列被编入索引,则为NULL。 · Packed
指示关键字如何被压缩。如果没有被压缩,则为NULL。 · Null
如果列含有NULL,则含有YES。如果没有,则该列含有NO。 · Index_type 用过的索引方法(BTREE, FULLTEXT, HASH, RTREE)。 · Comment
多种评注。
show variables用于显示mysql服务器变量。
mysqld服务维护两种变量。全局变量影响服务器的全局操作。会话变量影响具体客户端连接相关操作。
通过连接服务器并执行SET GLOBAL var_name语句可以更改动态全局变量。要想更改全局变量,必须具有SUPER权限,重启mysql服务后失效.
通过SET SESSION var_name语句来更改动态会话变量.但客户可以只更改自己的会话变量,而不更改其它客户的会话变量,退出终端后更改失效.
SHOW VARIABLES通常结合like使用,具体用法如下:
1.查看全局字符集
mysql> show global variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec) mysql> SHOW VARIABLES LIKE 'collation_%';
+----------------------+-------------------+
| Variable_name | Value |
+----------------------+-------------------+
| collation_connection | utf8_general_ci |
| collation_database | latin1_swedish_ci |
| collation_server | latin1_swedish_ci |
+----------------------+-------------------+
3 rows in set (0.00 sec)
mysql> show global variables like '%log_err%';
+---------------------+---------------------------------+
| Variable_name | Value |
+---------------------+---------------------------------+
| binlog_error_action | IGNORE_ERROR |
| log_error | /usr/local/mysql/logs/error.log |
+---------------------+---------------------------------+
2 rows in set (0.00 sec)
3.查看二进制日志是否开启.
mysql> show variables like 'log_bin';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_bin | OFF |
+---------------+-------+
1 row in set (0.00 sec)
4.查看mysql的连接数.
mysql> show variables like '%connections%';
+----------------------+-------+
| Variable_name | Value |
+----------------------+-------+
| max_connections | 151 |
| max_user_connections | 0 |
+----------------------+-------+
2 rows in set (0.00 sec)
mysql> show variables like 'binlog_format';
+---------------+-----------+
| Variable_name | Value |
+---------------+-----------+
| binlog_format | STATEMENT |
+---------------+-----------+
1 row in set (0.00 sec)
本处以更改日志格式的操作来说明set变量的使用
set global binlog_format=mixed; //全局更改,数据库重启后失效
set session binlog_format=mixed; //客户端更改,退出终端后失效.
6.全局查看wait_timeout值:
mysql> show global variables like ‘wait_timeout’;

这是mysql的默认值,可修改
2、修改全局wait_timeout值
set global wait_timeout=;
7.查询Mysql最大连接数和当前连接数
最大连接数
show variables like '%max_connections%';
当前连接数
show full processlist;
更多使用以后慢慢整理和添加
参考文档:http://www.365mini.com/page/mysql-show-status.htm
http://www.ttlsa.com/mysql/mysql_show_status_descriptsions/
http://blog.oldboyedu.com/mysql-optimization/
http://baike.xsoftlab.net/view/218.html
MySQL中show语法使用总结的更多相关文章
- (转)MySQL中show语法
MySQL中show语法 1. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称. 2. show databases; -- ...
- 总结MySQL中SQL语法的使用
--where子句操作符: where子句操作符 = 等于 <> 不等于(标准语法) != 不等于(非标准语法,可移植性差) < 小于 <= 小于等于 > 大于 > ...
- MySQL中show语法
1. show tables或show tables from database_name; -- 显示当前数据库中所有表的名称. 2. show databases; -- 显示mysql中所有数据 ...
- MySQL中链接查询inner join与left join使用
连接查询其实就是对两个表记录做笛卡尔乘积.如果不指定连接条件的话,则会对每行都做笛卡尔乘积,这样最后返回的结果树就会是两个表记录数的乘积:如果指定则,则仅对符合列条件的行进行笛卡尔乘积,并返回结果.在 ...
- MYSQL中存储过程的创建,调用及语法
MySQL 存储过程是从 MySQL 5.0 开始增加的新功能.存储过程的优点有一箩筐.不过最主要的还是执行效率和SQL 代码封装.特别是 SQL 代码封装功能,如果没有存储过程,在外部程序访问数据库 ...
- 语法:MySQL中INSERT INTO SELECT的使用(转)
1. 语法介绍 有三张表a.b.c,现在需要从表b和表c中分别查几个字段的值插入到表a中对应的字段.对于这种情况,可以使用如下的语句来实现: INSERT INTO db1_name (fi ...
- mySQL中删除unique key的语法 (删除某个字段的唯一性)
mySQL中删除unique key的语法 CREATE TABLE `good_booked` ( `auto_id` int(10) NOT NULL auto_increment, `goo ...
- mysql中SQL执行过程详解与用于预处理语句的SQL语法
mysql中SQL执行过程详解 客户端发送一条查询给服务器: 服务器先检查查询缓存,如果命中了缓存,则立刻返回存储在缓存中的结果.否则进入下一阶段. 服务器段进行SQL解析.预处理,在优化器生成对应的 ...
- python链接mysql以及mysql中对表修改的常用语法
MySQL是一个关系型数据库管理系统 ,其体积小.速度快.总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库.在使用过程中不总是和它打交道,导致使用时候都得 ...
随机推荐
- Linux 关于Transparent Hugepages的介绍【转】
透明大页介绍 Transparent Huge Pages的一些官方介绍资料: Transparent Huge Pages (THP) are enabled by default in RHEL ...
- 【Acm】算法之美—Anagrams by Stack
题目概述:Anagrams by Stack How can anagrams result from sequences of stack operations? There are two seq ...
- 常用的 Linux iptables 规则
一些常用的 Linux iptables 规则,请根据自己的具体需要再修改. 转载自:http://mp.weixin.qq.com/s/uAPzh9_D4Qk6a3zBh7Jq5A # 1. 删除所 ...
- eclipse Maven 使用记录 ------ 建立app项目
maven 项目构建工具 , 如今已逐渐取代ant的笨拙配置方式 ,使项目管理更加简单,规范,结构更加清晰,这里记录跟eclipse集成的一些步骤 1.从apache maven项目下下载maven ...
- 完美解决苹果电脑mac终端无法输入大写T的问题
[本文出自天外归云的博客园] 最近突然发现我的苹果电脑mac终端无法输入大写字母T,今天终于在同事的帮助下解决了!之前在网上查解决方法,感觉步骤描述欠佳!今天记录一下这个踩坑经验: 完美解决! 首先打 ...
- 2. AutoEncoder在NLP中的应用
1. AutoEncoder介绍 2. Applications of AutoEncoder in NLP 3. Recursive Autoencoder(递归自动编码器) 4. Stacked ...
- faster rcnn流程
1.执行流程 数据准备 train_net.py中combined_roidb函数会调用get_imdb得到datasets中factory.py生成的imdb 然后调用fast_rcnn下的trai ...
- 使用 WebSphere ILOG JRules 开发保险应用系统
使用 WebSphere ILOG JRules 开发保险应用系统 概述 保险行业在国内是一个充分竞争的行业,竞争的加剧导致保险公司的业务管理等各项费用在增长.而保险公司业务支撑系统的先进性与灵活支撑 ...
- RDD、DataFrame和DataSet
简述 RDD.DataFrame和DataSet是容易产生混淆的概念,必须对其相互之间对比,才可以知道其中异同:DataFrame多了数据的结构信息,即schema.RDD是分布式的 Java对象的集 ...
- <花荣《至尊狐狸》中国股市精英最优套利战术>读书笔记
书在这里 第一定律:博弈分析是一切实战操作的基础,资金的机会利润由主力投机状态决定,资金的风险承受度由投资标的价值底线锁定 第二定律:套利战术应是背景性的.主动性的.互动性的,是最安全最保守的.最明确 ...