• MySQL


    目录

    一、数据的导入导出的三种方式

     二、视图

     三、索引

    案例

     四、执行计划

     案列

    一、数据的导入导出的三种方式

    1.使用工具,类似sqlyog.Navicat等导入导出

     选中表->右键选择运行sql文件->选择要运行的SQL文件

    运行时间

     

     查询

     2.使用mysqldump导入导出

    TRUNCATE table t_log 

     

     再执行查询

     注意:delet的速度比TRUNCATE慢

    找到安装的bin目录

     打开bin

     注意:执行命令的时候无需登录服务端,但是执行命令需要携带数据库用户以及密码

     mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql(这个名字随便叫)

     

    导入

        注意:首先建立空数据库

        mysql>create database abc;

        2.2.1 方法一

        mysql>use abc;                   #选择数据库
        mysql>set names utf8;            #设置数据库编码
        mysql>source /home/abc/abc.sql;  #导入数据

        2.2.2 方法二

        mysql -u用户名 -p密码 数据库名 < 数据库名.sql
        #mysql -uabc_f -p abc < abc.sql

     

     二、视图

    什么是视图:

    ①、视图是一张虚拟的表,是从数据库中一个或多个表中导出来的表

    ②、数据库中存放了视图的定义,而并没有存放视图中的数据,这些数据库存放在原来的表里

    ③、使用视图查询数据时,数据库系统会从原来的表中取出对应的数据

    视图的作用:

    ①、使操作简便化

    ②、增加数据的安全性

    ③、提高表的逻辑性

    注意:视图创建成功的前提下时不能出现重复列

        create view v_stu as select * from t_student

     select * from  v_stu

     

     三、索引

    什么是索引:

    索引是由数据库表中一列或多列组合而成,其作用是提高对表中数据的查询速度,类似与图书的目录,方便快速定位,寻找指定内容

    索引的优缺点:

    优点:提高查询的速度

    缺点:创建和维护索引的时间增加了,同时占用了硬盘空间

    索引分类:

    普通索引:是最基本的索引,它没有任何限制;

     唯一索引:与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一;

     主键索引:是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值;

      组合索引:指多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循最左前缀集合;

      全文索引:使用FULLTEXT参数可以设置,全文索引只能创建在CHAR,VARCHAR,TEXT类型的字段上。主要作用是提高查询较大字符串类型的速度;只有MyISAM引擎支持该索引,MySQL默认引擎不支持;mysql5.7+

     创建索引

       CREATE [UNIQUE|FULLTEXT] INDEX 索引名 ON 表名(字段名[(长度)][ASC|DESC])

      修改索引

       ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT] INDEX 索引名(字段名[(长度)][ASC|DESC])

       删除索引

       DROP INDEX 索引名 ON 表名

    案例

    普通索引案例
    create index 索引名 on 表名(字段名)
    --0.328s
    select * from t_log where moduleid=10040999

    --1.005s
    create index idx_moduleid on t_log(moduleid);

    --0.001s
    select * from idx_moduleid

    唯一索引案例

    create unique index 索引名 on 表名(字段名)
    create unique index idx_url on t_log(url)

    运行:

     注意:唯一键索引的对应列值是不允许相同的

    主键索引案例
    create table 表名(
       id int not null auto_increment primary key,
       ...
    )

    t_log表的主键为id 使用id查询的速度是最快的

     

    组合索引案例
    create index 索引名 on 表名(字段名1,字段名2,...)

    --2.507s
    create index idx_userid_moduleid_url on t_log(userid,moduleid,url)

    --0.001s
     select * from idx_userid_moduleid_url

     最左列段匹配原则

    EXPLAIN select * from t_log

     

      EXPLAIN select * from t_log where userid = ''

     

     

      EXPLAIN select * from t_log where userid = '' and moduleid = ''

     

     四、执行计划

    MySQL中的执行过程:

     explain select * from t_user u left join t_role r on u.roleid = r.roleid

     运行:

     explain select * from t_user u where u.roleid = (select roleid from t_role where rolename = '管理员')

     

     #左外联
    explain select * from t_user u left join t_role r on u.roleid = r.roleid

     

     

     #右外联
    explain select * from t_user u right join t_role r on u.roleid = r.roleid

     

    注:通过left join 和 right join 验证;id一样(注意执行计划的table列),left join 先扫描a表,再扫描b表;right join 先扫描b表,再扫描a表

    id越大优先级越高

     案列

    使用 like 语句时,%在右边才会使用索引

    无效
    EXPLAIN  select * from t_user where username  like '%张' 

     

    有效
    EXPLAIN  select * from t_user where username  like '张%' 

     or条件中有未建立索引的列才索引失效

     无效
    EXPLAIN  select * from t_user where username = '张三' or password = 123456

    有效
    EXPLAIN  select * from t_user where username = '张三' and password = 123456

     条件的类型不一致

     无效
    EXPLAIN  select * from t_user where username= 1


    有效
    EXPLAIN  select * from t_user where username= '张三'

     

     

  • 相关阅读:
    vcs仿真教程(查看断言)
    同态加密定义,四大发展阶段总结,FHE系统正式定义-全同态加密
    STM32中的加速度计驱动程序与姿态控制实现
    从零开始学习 Java:简单易懂的入门指南之IO缓冲流、转换流(三十二)
    javascript中如何将多个数组的一个元素相加求和
    安装MinGW-w64
    TortoiseGit使用教程
    对“方法”的解读
    百趣代谢组学文献分享:真假肥胖?代谢组说了算
    前端react入门day01-了解react和JSX基础
  • 原文地址:https://blog.csdn.net/weixin_62735525/article/details/125625303