【mysql笔记】mysql不常用,但是有用的命令

Page content

这篇简单的整理了开发过程中我们会用到的mysql的一些命令。

其实不太懂也不会影响你开发,了解到了能提高一丢丢的效率…^^

1.show 命令

#查看数据库
show databases;
show tablse;
select database();
status;

#查看创建语句
show create database test
show create tatble test

#查看全局和回话变量
show global variables
show session variables

#默认查看会话变量,后面可以加like查询
show variables like '%version%'
show variables like '%character_%'
show variables like '%collation_%'
#执行计划缓存,命中低,所以只有5.7版本,8.0已经废弃
show variables like '%query_cache_type%'

2.set 命令

一般修改系统变量或会话变量。

#关掉自动提交
set autocommit=false;

#修改最大链接数
set global max_connections = 100
... ...

profiling

查看执行计划的时候使用,默认是关闭

mysql> show variables like 'profiling%';
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| profiling              | OFF   |
| profiling_history_size | 15    |
+------------------------+-------+
#开启
mysql> set profiling=1;
Query OK, 0 rows affected, 1 warning (0.00 sec)


mysql> select * from aa_innodb;
+----+------+
| id | name |
+----+------+
|  1 | aa1  |
|  2 | aa2  |
+----+------+
... ...

mysql> show profiles;
+----------+------------+----------------------------------+
| Query_ID | Duration   | Query                            |
+----------+------------+----------------------------------+
|        1 | 0.00765200 | select * from aa_innodb          |
|        2 | 0.00188275 | show variables like 'profiling%' |
|        3 | 0.00055175 | select * from aa_innodb          |
|        4 | 0.00041675 | select * from aa_innodb          |
|        5 | 0.00055025 | show profiling                   |
|        6 | 0.00018325 | show profilings                  |
|        7 | 0.00060450 | select * from aa_innodb          |
|        8 | 0.00043075 | select * from aa_innodb          |
+----------+------------+----------------------------------+

mysql> show profile for query 7;
+----------------------+----------+
| Status               | Duration |
+----------------------+----------+
| starting             | 0.000246 |
| checking permissions | 0.000021 |
| Opening tables       | 0.000035 |
| init                 | 0.000021 |
| System lock          | 0.000021 |
| optimizing           | 0.000014 |
| statistics           | 0.000031 |
| preparing            | 0.000022 |
| executing            | 0.000013 |
| Sending data         | 0.000046 |
| end                  | 0.000014 |
| query end            | 0.000014 |
| closing tables       | 0.000012 |
| freeing items        | 0.000052 |
| cleaning up          | 0.000046 |
+----------------------+----------+

my.cnf

这些配置项还可以修改 my.cnf文件。(set命令是一次性的修改,my.cnf是永久性的修改)
然后需要重启数据库。如果生产环境中不宜重启的话,可以使用命令 + 修改 my.cnf的方式。

3.desc 命令

当我们使用终端链接数据库时,用desc命令会很方便的查看查看表结构。

mysql> desc user;
+-----------------------------+---------------------+------+-----+-------------------+-------+
| Field                       | Type                | Null | Key | Default           | Extra |
+-----------------------------+---------------------+------+-----+-------------------+-------+
| id                          | varchar(36)         | NO   | PRI | NULL              |       |
| email                       | varchar(100)        | YES  | MUL | NULL              |       |
| mobile                      | varchar(50)         | YES  |     | NULL              |       |
| login_name                  | varchar(100)        | NO   |     | NULL              |       |
... ...
| create_date                 | datetime            | NO   |     | CURRENT_TIMESTAMP |       |
| last_update                 | timestamp           | NO   |     | CURRENT_TIMESTAMP |       |
+-----------------------------+---------------------+------+-----+-------------------+-------+

4.\G

使用终端查询的时,字段或数据太多可以查询语句后面加 \G 可以查看到查询的结果。

mysql> select * from user limit 10 \G
*************************** 1. row ***************************
                         id: 03a4f5c0-9544-49bd-9dd4-a306dd247bf0
                      email: 18612967963@163.com
                     mobile: 18612967963
                 login_name: 18612967963
                        ... ...
                create_date: 2022-03-22 20:05:54
                last_update: 2022-05-12 14:24:07
*************************** 2. row ***************************
                         id: 03a4f5c0-9544-49bd-9dd4-a306dd247bf0
                        ... ...

小结

show 命令可以查看系统(session)参数。
set 可以设置系统(session)参数。
desc 可以查看表结构。
\G 可以换一种方式查看查询的结果。

下一遍整理了explain相关的命令。


PS

8.0版本新增了新的密码验证的方式。
所以就得客户端链接报错的时候可以把密码的验证改回5.7的方式。

use mysql;

#修改永红密码登录的规则
ALTER USER `root`@`localhost` IDENTIFIED WITH mysql_native_password BY '123456';

#刷新权限
FLUSH PRIVILEGES;

执行脚本

source ./xxx.sql;

数据缓冲池
innodb:innodb_buffer_pool_size
myisam:key_buffer_size


欢迎大家的意见和交流

email: li_mingxie@163.com