MySQL 索引数据导入数据导出

Posted 凌逆战

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL 索引数据导入数据导出相关的知识,希望对你有一定的参考价值。

索引

1、定义:对数据库表的一列或多列的值进行排序的一种结构(Btree方式)
2、优点:加快数据检索速度
3、缺点:占用物理存储空间;当对表中数据更新时,索引需要动态维护,降低数据维护速度
4、索引示例
  1、开启运行时间检测 :set profiling=1;
  2、执行查询语句
    select name from t1 where name="lucy99999";
  3、查看执行时间
    show profiles;
  4、在name字段创建索引
    create index name on t1(name);
  5、再执行查询语句
    select name from t1 where name="lucy88888";
  6、查看执行时间
    show profiles;
5、索引
  1、普通索引(index)
    1、使用规则
      1、可设置多个字段
  2、字段值无约束
  3、key标志 :MUL
    2、创建index
      1、创建表时
        create table 表名(...
        index(字段名),index(字段名));
      2、已有表
      create index 索引名 on 表名(字段名);
      create index name on t3(name);
      3、查看索引
        1、desc 表名; --> KEY标志为:MUL
  2、show index from 表名G;
    4、删除索引
      drop index 索引名 on 表名;
  2、唯一索引(unique)
    1、使用规则
      1、可设置多个字段
  2、约束 :字段值不允许重复,但可为 NULL
  3、KEY标志 :UNI
    2、创建
      1、创建表时创建
        unique(字段名),
        unique(字段名)
  2、已有表
    create unique index 索引名 on 表名(字段名);
    3、查看、删除 同 普通索引
  3、主键索引(primary key)
    自增长属性(auto_increment,配合主键一起使用)
    1、使用规则
      1、只能有一个主键字段
  2、约束 :不允许重复,且不能为NULL
  3、KEY标志 :PRI
  4、通常设置记录编号字段id,能唯一锁定一条记录
    2、创建
      1、创建表时
        (id int primary key auto_increment,
        )auto_increment=10000;##设置自增长起始值
        已有表添加自增长属性:
        alter table 表名 modify id int auto_increment;
        已有表重新指定起始值:
        alter table 表名 auto_increment=20000;
      2、已有表
        alter table 表名 add primary key(id);
      3、删除
        1、删除自增长属性(modify)
          alter table 表名 modify id int;
        2、删除主键索引
          alter table 表名 drop primary key;
    4、外键索引
4、数据导入
1、作用 :把文件系统的内容导入到数据库中
2、语法
  load data infile "/var/lib/mysql-files/文件名"
  into table 表名
  fields terminated by "分隔符"
  lines terminated by " ";
3、将scoretable.csv文件导入到数据库的表中
  1、在数据库中创建对应的表
  create table scoretab(
  id int,
  name varchar(15),
  score float(5,2),
  number bigint,
  class char(7)
  );
2、把文件拷贝到数据库的默认搜索路径中
  1、查看默认搜索路径
    show variables like "secure_file_priv";
    /var/lib/mysql-files/
  2、拷贝文件
    sudo cp ~/scoretable.csv /var/lib/mysql-files/
  3、执行数据导入语句
    load data infile "/var/lib/mysql-files/scoretable.csv"
    into table scoretab
    fields terminated by ","
    lines terminated by " ";
  4、文件权限
    rwxrw-rw- 1 tarena tarena scoretable.csv
          所有者 所属组
    rwx : tarena用户
    rw- : 同组其他用户
    rw- : 其他组的其他用户(mysql用户)

    r -> 4
    w -> 2
    x -> 1
    chmod 644 文件名 rw-r--r--
  5、Excel表格如何转化为CSV文件
    1、打开Excel文件 -> 另存为 -> CSV(逗号分隔)
  6、更改文件编码格式
    1、用记事本/编辑器 打开,文件->另存为->选择编码
5、数据导出
1、作用
  将数据库中表的记录导出到系统文件里
2、语法格式
  select ... from 表名
  into outfile "/var/lib/mysql-files/文件名"
  fields terminated by "分隔符"
  lines terminated by " ";
3、把MOSHOU库下的sanguo表英雄的姓名、攻击值、国家导出来,sanguo.txt
  select name,gongji,country from MOSHOU.sanguo
  into outfile "/var/lib/mysql-files/sanguo.txt"
  fields terminated by " "
  lines terminated by " ";
  $ sudo -i
  $ cd /var/lib/mysql-files/
  $ ls
  $ cat sanguo.txt
4、将mysql库下的user表中 user、host两个字段的值导出到 user.txt
  select user,host from mysql.user
  into outfile "/var/lib/mysql-files/user.txt" fields terminated by " "
  lines terminated by " ";

 



































































































































以上是关于MySQL 索引数据导入数据导出的主要内容,如果未能解决你的问题,请参考以下文章

从零开始学习 MySQL 系列--索引视图导入和导出

索引,视图,导入导出,备份,恢复

ORACLE 如何只导出导入索引?

MySQL存储引擎数据导入导出管理表记录

如何向mysql数据库中导入大批量数据?

MongoDB数据导出导入及索引建立