MySQL之数据导入导出备份以及事务、存储引擎

数据导入

作用:把文件系统的内容导入到数据库中

操作步骤:

1.在数据库中创建对应的表

create table userinfo(  username varchar(20),
                        passwd char(1), 
                        uid int,  
                        gid int,  
                        comment varchar(50),   
                        homedir varchar(50),  
                        shell varchar(50) );

2.把要导入的文件拷贝到数据库搜索路径中

          1.查看数据库的搜索路径

                   show variables like "secure_file_priv";

          2.sudo cp / etc / passwd / var / lib / mysql - files /

3.执行数据导入语句(mysql输入四条命令一起写)

          load data infile "/var/lib/mysql-files/passwd"

          into table userinfo(库名)

          fields terminated by ":"  # 表示以冒号分割

          lines terminated by "\n";

数据导出

作用:将数据库中的表记录保存到系统文件中

语法格式:

select(...字段名) from 表名

into outfile "/var/lib/mysql-files/user1.txt"

fields terminated by "分隔符"

lines terminated by "\n";

数据备份(mysqldump,Linux终端操作)

命令格式 : mysqldump -u用户名 -p 源库名 > 路径/xxx.sql

源库名的表示方式:

--all-databases 备份所有库

 

 

库名      备份单个库

-B 库1 库2...   备份多个库

库名 表1 表2... 备份指定库的指定表

示例:

1.备份所有库all.sql,放到mydata目录中

     mysqldump -root -p --all-databases > all.sql

2.备份db4库中的sheng,city 和xian三张表为 db4scx.sql

     mysqldump -uroot -p db4 sheng city xian > db4scx.sql

数据恢复

命令格式 : mysql -u用户名 -p 目标库名 < xxx.sql

示例:

     mysql -uroot -p --one-database MOSHOU < all.sql

注意:

恢复库时,原库中表中记录会被覆盖,新增表不会被覆盖

事务和事务回滚

定义:一件事从开始发生到结束的过程

作用:确保数据一致性

事务应用

开启事务:begin;

## autocommit 被禁用,SQL命令不会提交到数据库执行

终止事务:commit;

rollback;

注意:

事务和事务回滚只针对表记录操作:增、删、改有效,对键库建表无效

 

 

示例:
1.背景    你:建行卡          你朋友:工商卡       你在建行自动取款机上给你朋友工商卡转5000元
2.过程
	表1:CCB
	create table CCb(name char(15),money init );
	insert into CCB values ("xhuanwian",10000);
	表2:ICBC
	create table ICBC(name char(15),money int);
	insert into ICBC values ("shouqian",4000);
3.
	mysql>begin;
	mysql>update CCB set money=5000 where name
	mysql>update ICBC set money=9000 where name

存储引擎(代表表的处理器)

MySQL存储引擎(处理表的处理器)

基本操作:

        查看所有存储引擎

             show engines;

        查看表存储引擎

              show create table 表名;

        指定存储引擎

                create table 表名(……)engine = innodb,character set utf8;

         修改已有表的存储引擎

                 alter table 表名 engine=myisam;

工作常用

        InnoDB MyISAM

修改表的默认存储引擎(修改配置文件)

sudo -i

cd /etc/mysql/mysql.conf.d/

(复制一下,以防丢失)

[mysqld]

default-storage-engine=myisam

(修改默认引擎)

重启mysql

存储引擎特点

MyISAM特点

             独享表空间

              表名.frm bi结构

              表名.myd 表记录

               表名.myi 索引文件

                只支持表级锁

InnoDB特点

           共享表空间

           表名.frm 表结构和索引信息

           表名.ibd 表记录

            支持行级锁

memory

           表结构存储于硬盘,表记录存储于内存

            表名.frm

            服务重启后表结构还在,表记录都消失

 

决定表使用什么存储引擎

主要用来查询的表用MyISAM

写操作多的表用InnoDB

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MySQL所有支持的存储引擎包括: 1. InnoDB:这是MySQL的默认存储引擎。它支持事务、行级锁和外键等特性。 2. MyISAM:这是MySQL中较早的存储引擎之一。它不支持事务和行级锁,但是具有高性能和压缩特性。 3. Memory:这个存储引擎将所有数据存储在内存中,因此速度非常快。但是,数据不会持久化,这意味着在重启服务器后,数据将会丢失。 4. CSV:这个存储引擎数据存储在逗号分隔的文件中。它对于导入导出数据非常方便,但不支持索引和事务等功能。 5. Blackhole:这个存储引擎不会实际存储数据,它只是将写入的数据转发到其他MySQL服务器上。因此,它适用于日志记录和数据分发等应用场景。 6. Merge:这个存储引擎允许将多个MyISAM表合并成一个虚拟表,使查询变得更加方便。 7. Federated:这个存储引擎允许将数据存储在远程服务器上,而在本地服务器上查询数据,使得数据分布式管理变得更加容易。 除此之外,还有一些其他的存储引擎,如Archive、Example、NDB Cluster、Partition等。不同的存储引擎具有不同的特点和应用场景,开发者可以根据实际需求选择适合的存储引擎。 ### 回答2: MySQL是一款常见的关系型数据库管理系统,提供了多种存储引擎供用户选择。以下是MySQL中常见的几种存储引擎: 1. InnoDB引擎:InnoDB是MySQL的默认存储引擎,支持事务处理和行级锁定。它具有高度的可靠性和稳定性,支持崩溃恢复和多版本并发控制(MVCC)等特性。 2. MyISAM引擎:MyISAM是MySQL最早的存储引擎,它支持全文索引和表级锁定,但不支持事务处理。它在读操作上性能较好,适用于读多写少的场景。 3. Memory引擎:Memory引擎将数据存储在内存中,因此读写速度非常快,适用于对速度要求较高的应用。但它的数据是临时存储的,当数据库关闭时数据会丢失。 4. Archive引擎:Archive引擎适用于大量历史数据的存储,它具有高度的压缩比和快速的插入速度,但不支持更新和删除操作。 5. CSV引擎:CSV引擎以纯文本形式存储数据,采用逗号分隔值的格式。它对于导入导出数据非常方便,但不支持索引、事务等功能。 6. Blackhole引擎:Blackhole引擎不会实际存储数据,它只接受写操作并将数据丢弃。这在复制和分发数据时非常有用。 除了以上几种常见的存储引擎外,MySQL还提供了其他一些存储引擎,如FederatedX引擎、Merge引擎等,它们具有各自的特点和适用场景。根据实际需求,用户可以选择合适的存储引擎来优化数据库的性能和功能。 ### 回答3: MySQL是一个关系型数据库管理系统,内部提供了多种存储引擎来支持数据存储和查询。以下是MySQL的一些常见存储引擎: 1. InnoDB:这是MySQL默认的存储引擎,也是最常用的引擎之一。它支持事务、行级锁定和外键约束等功能,适用于大部分的应用场景。 2. MyISAM:这是另一种常见的存储引擎,主要用于读密集型的应用。它不支持事务和行级锁定,但它的查询性能很高。 3. Memory:这个存储引擎数据存储在内存中,速度非常快,但数据不会持久化。适用于缓存和临时数据存储。 4. Archive:这个存储引擎用于高度压缩的只读数据。它对于大量历史数据的存储非常有效,但写入和查询速度较慢。 5. CSV:这个存储引擎数据存储为逗号分隔值文件,适用于导入导出数据。 6. Blackhole:这个存储引擎直接丢弃所有写入数据,对于备份和复制很有用。 7. NDB:这是一个高度可扩展的存储引擎,适用于分布式数据库和高并发应用。 8. Federated:这个存储引擎可以将数据保存在远程服务器上,允许在多个数据库之间共享数据。 以上列出的存储引擎只是MySQL提供的一部分,每个存储引擎都有自己的特性和适用场景。选择合适的存储引擎取决于应用的需求和性能要求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值