-
查询当前所有存在的数据库
show databases;
-
查询数据库支持哪些引擎
show engines;
-
查询数据库当前使用的引擎
show variables like '%storage_engine%';
-
导入数据库
source 文件路径;
-
导出整个数据库
mysqldump -u用户名 –p密码 数据库名 > 导出的文件名;
注意:该命令不能在MySQL内执行,需要退出MySQL,在终端窗口命令行下执行 -
导出数据库表
mysqldump -u用户名 -p密码 数据库名 数据库表名> 导出的文件名;
注意:该命令不能在MySQL内执行,需要退出MySQL,在终端窗口命令行下执行 -
新建数据库
create database 数据库名;
-
删除数据库
drop databas 数据库名;
-
选择数据库
use 数据库名;
-
新建数据库表
create table 表名 (字段名 类型(长度) <是否为空> <是否主键(primary key)> <自动增加(auto_increment)> <default(默认值)> [, ... 字段名 类型(长度) ...])<ENGINE=指定引擎名> <DEFAULT CHARSET=字符集> <COMMENT '简介'>;
-
查询数据表结构
show create table 数据库表名;
-
显示数据表的状态
desc 数据库表名;
-
删除数据库表
drop table 数据库表名;
-
创建单值索引
create index 索引名 on 数据库表名(字段名);
或者alter table 数据库表名 add index 索引名(字段名);
-
创建唯一索引
create unique index 索引名 on 数据库表名(字段名);
或者alter table 数据库表名 add unique index 索引名(字段名);
-
创建复合索引
create index 索引名字 on 数据库表名(字段名1, 字段名2, ...);
或者alter table 数据库表名 add index 索引名(字段名1, 字段名2, ...);
-
查询索引
show index from 数据库表名;
-
删除索引
drop index 索引名 on 数据库表名;
-
分析SQL的执行计划
explain SQL语句;
分析字段介绍: * id: 编号 * select_type: 查询类型 ** PRIMARY:包含子查询SQL语句中的主查询--最外层 ** SUBQUERY:包含子查询SQL语句中的子查询 -- 非最外层 ** SIMPLE:简单查询--不包含子查询语句、union ** DERIVED:衍生查询(使用到了临时表) *** from子查询中只有一张表 *** 在from子查询中,如果有table1 union table2, 则table1就是DERIVED * table: 数据库表名 * partitions: 该列显示的为分区表命中的分区情况,非分区表该字段为空(null) * type: 索引类型, 要对type进行优化的前提是需要有索引 ** 性能从优到差依次为:system > const > eq_ref > ref > fulltext > ref_or_null > index_merge > unique_subquery > index_subquery > range > index > ALL *** system: 只有一条数据的系统表或者衍生表只有一条数据的主查询 *** const: 仅仅能查询到一条数据的SQl语句,用于primary key (查询类型与索引类型有关) *** eq_ref: 唯一性索引,对于每个索引键的查询,返回匹配唯一行数据(有且只有一个,不能多,不能为零),常见于唯一索引和主键索引 *** ref: 非唯一索引,对于每个索引键查询,返回匹配的所有行数据(零或多个) *** range: 检索指定范围的行,where后面是一个范围查询(between,>,<,>=,<=) *** index: 查询全部索引中的数据 *** ALL: 查询全部表中的数据 * possible_keys: 预测使用的索引 * key: 实际使用的索引 * key_len: 实际使用的索引长度,用于判断复合索引是否被完全使用, ** 如果索引字段为空并固定长度,则会使用一个字节进行表识 ** 如果索引字段为可变长度,则会使用两个字节进行表识 ** 在UTF8中一个字符等于三个字节, GBK中一个字符等于两个字节,LATIN中一个字符等一一个字节 * ref: 表之间的引用 * rows: 被索引优化查到的数据个数 * filtered: 表示存储引擎返回的数据在server层过滤后,剩下多少满足查询的记录数量的比例,注意是百分比,不是具体记录数 * Extra: 额外的数据信息 ** using fikesort: 性能消耗大,需要"额外"一次排序(查询),常见于order by语句中 *** 对于单索引来说,排序和查找是同一个字段,则不会出现using fikesort,反之则会出现using fikesort *** 对于复合索引来说,不能跨列查询(最佳左前缀),则不会出现using fikesort,反之则会出现using fikesort ** using temporary: 性能消耗大,用到了临时表,常见于group by语句中,已经存在表了,但不适用,需要使用一张临时表 ** using where: 需要回表查询 ** using join buffer: Mysql引擎使用了连接缓存 ** impossible where: where子句永远等于false ** using index: 性能提升,覆盖索引(只要使用的列,全部都在索引中,就叫覆盖索引),不需要读取源文件,只从索引文件中获取数据,不需要回表查询
-
清屏
system clear;
或者Ctrl + L
终端常用MySQL操作命令
最新推荐文章于 2024-06-05 22:54:12 发布