终端常用MySQL操作命令

  • 查询当前所有存在的数据库 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

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值