mysql5.7执行计划 导出_Oracle执行计划和数据导出、MySQL入门

一、Oracle执行计划

1.概念

执行计划可以理解为数据的执行过程(与SQL优化挂钩)

执行计划是一条查询语句在Oracle中的执行过程或访问路径的描述

2.执行计划的常用字段

基数(Cardinality):Oracle 估计的当前操作的返回结果集

行字节(Bytes):执行该步骤后返回的字节数

耗费(COST)、CPU 耗费:Oracle 估计的该步骤的执行成本,用于说明 SQL 执行的 代价,理论上越小越好(该值可能与实际有出入)

时间(Time):Oracle 估计的当前操作所需的时间

3.表访问的几种方式(非全部)

TABLE ACCESS FULL(全表扫描)

TABLE ACCESS BY INDEX ROWID(通过 ROWID 的表存取)

TABLE ACCESS BY INDEX SCAN(索引扫描)

以下内容了解即可!

1.TABLE ACCESS FULL(全表扫描)

Oracle 会读取表中所有的行,并检查每一行是否满足 SQL 语句中的 Where 限制条件; 使用建议:数据量太大的表不建议使用全表扫描,除非本身需要取出的数据较多,占到 表数据总量的 5% ~ 10% 或以上5.2.2TABLE ACCESS BY INDEX ROWID(通过 ROWID 的 表存取)

2.什么是 ROWID ROWID

ROWID ROWID 是由 Oracle 自动加在表中每行最后的一列伪列,既然是伪列,就说明表中并不 会物理存储 ROWID 的值。 你可以像使用其它列一样使用它,只是不能对该列的值进行增、删、改操作。 一旦一行数据插入后,则其对应的 ROWID 在该行的生命周期内是唯一的,即使发生行 迁移,该行的 ROWID 值也不变。

3.TABLE ACCESS BY INDEX ROWID 行的 ROWID 指出了该行所在的数据文件、数据块以及行在该块中的位置,所以通过 ROWID 可以快速定位到目标数据上,这也是 Oracle 中存取单行数据最快的方法;

4.TABLE ACCESS BY INDEX SCAN(索引扫描在索引块中,既存储每个索引的键值,也存储具有该键值的行的 ROWID。

5.索引扫描其实分为两步

a. 扫描索引得到对应的 ROWID。

b.通过 ROWID 定位到具体的行读取数据。

6.五种索引扫描

• INDEX UNIQUE SCAN(索引唯一扫描)

• INDEX RANGE SCAN(索引范围扫描)

• INDEX FULL SCAN(索引全扫描)

• INDEX FAST FULL SCAN(索引快速扫描)

• INDEX SKIP SCAN(索引跳跃扫描)

7.INDEX UNIQUE SCAN(索引唯一扫描) 针对唯一性索引(UNIQUE INDEX)的扫描,每次至多只返回一条记录表中某字段存在 UNIQUE、PRIMARY KEY 约束时,Oracle 常实现唯一性扫描;

8.INDEX RANGE SCAN(索引范围扫描) 使用一个索引存取多行数据; 发生索引范围扫描的三种情况:

a.在唯一索引列上使用了范围操作符(如:> < <> >= <= between);

b.在组合索引上,只使用部分列进行查询(查询时必须包含前导列,否则会走全表扫描);

c.对非唯一索引列上进行的任何查询;

9.INDEX FULL SCAN(索引全扫描) 进行全索引扫描时,查询出的数据都必须从索引中可以直接得到;

10.INDEX FAST FULL SCAN(索引快速扫描) 扫描索引中的所有的数据块,与 INDEX FULL SCAN 类似,但是一个显著的区别是它 不对查询出的数据进行排序(即数据不是以排序顺序被返回);

11.INDEX SKIP SCAN(索引跳跃扫描) 表有一个复合索引,且在查询时有除了前导列(索引中第一列)外的其他列作为条件;

12.Oracle 的优化器

Oracle 的优化器种类

a.RBO(Rule-Based Optimization) 基于规则的优化器

b.CBO(Cost-Based Optimization) 基于代价的优化器

13.RBO 优化器 RBO 有严格的使用规则,只要按照这套规则去写 SQL 语句,无论数据表中的内容怎样, 也不会影响到你的执行计划。换句话说,RBO 对数据“不敏感”,它要求 SQL 编写人员必 须要了解各项细则。RBO 一直沿用至 ORACLE 9i,从 ORACLE 10g 开始,RBO 已经彻底 被抛弃。

14.CBO 优化器 CBO 是一种比 RBO 更加合理、可靠的优化器,在 ORACLE 10g 中完全取代 RBO。CBO 通过计算各种可能的执行计划的“代价”,即 COST,从中选用 COST 最低的执行方案作为实 际运行方案。

二、数据导入和导出

1.数据库导入导出需要注意

1.目标数据库要与源数据库有着名称相同的表空间。

2.目标数据在进行导入时,用户名尽量相同(这样保证用户的权限级别相同)。

3.目标数据库每次在进行数据导入前,应做好数据备份,以防数据丢失。

4.弄清是导入导出到相同版本还是不同版本(oracle10g 版本与 oracle11g 版本)。

5.目标数据导入前,弄清楚是数据覆盖(替换),还是仅插入新数据或替换部分数据表

6.确定目标数据库磁盘空间是否足够容纳新数据,是否需要扩充表空间。

7.导入导出时注意字符集是否相同,一般 Oracle 数据库的字符集只有一个,并且固定, 一般不改变。

8.确定操作者的账号权限。

2.导出数据格式介绍

Dmp 格式:.dmp 是二进制文件,可跨平台,还能包含权限,效率好。

Sql 格式:.sql 格式的文件,可用文本编辑器查看,通用性比较好,效率不如第一种, 适合小数据量导入导出。尤其注意的是表中不能有大字段 (blob,clob,long),如果有,会 报错。

Pde 格式:.pde 格式的文件,.pde 为 PL/SQL Developer 自有的文件格式,只能用 PL/SQL Developer 工具导入导出,不能用文本编辑器查看。

通过可视化工具操作就不再进行数据的导入导出就不再进行演示

通过SQL    Plus命令窗口导入/导出格式

exp|imp 用 户 名 / 密 码 @ 连 接 地 址 : 端 口 / 服 务 名 file= 路 径 / 文 件 名 .dmp full=y|tabels(tablename,tablename...)|owner(username1,username2,username3

exp:导出命令,导出时必写。

imp:导入命令,导入时必写,每次操作,二者只能选择一个执行。

username:导出数据的用户名,必写;

password:导出数据的密码,必写;

@:地址符号,必写;

SERVICENAME:Oracle 的服务名,必写;

1521:端口号,1521 是默认的可以不写,非默认要写;

file="文件名.dmp" : 文件存放路径地址,必写;

full=y :表示全库导出。可以不写,则默认为 no,则只导出用户下的对象

tables:表示只导出哪些表;

owner:导出该用户下对象;

full|tables|owner:只能使用一种;

导出数据格式

exp 用户名/密码@oracle 的连接地址:端口/需要导出的服务名 file=路径/文件名.dmp

37982f35c691

导出命令

导入数据格式

imp 用户名/密码@oracle 的连接地址:端口/需要导出的服务名 file=路径/文件名.dmp

37982f35c691

导入数据

用Test用户登录可视化界面,可以看到数据成功导入

37982f35c691

数据成功导入

三、MySQL安装和卸载

1.MySQL 版本

a. MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。

b. MySQL Enterprise Edition 企业版本,需付费,可以试用30天。

c. MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。

d. MySQL Cluster CGE 高级集群版,需付费。

2.MySQL安装过程

一路next

3.MySQL卸载过程(Windows环境下,linux与Mac另百度)

a.首先打开电脑服务,关闭MySQL服务项

b.打开电脑控制面板,找到程序和功能或者用安全维护软件(不推荐这个)开始卸载MySQL

c.卸载完成后,打开MySQL安装目录删除与MySQL相关的所有文件夹(包括隐藏文件夹)

d.清理注册表并重启电脑

4.MySQL与Oracle区别(主要区别)

a.实例区别:

MySQL是轻量级的,开源免费,且一个实例可以操作多个库,安装只有300M左右

Oracle是收费的而且贼贵,且一个Oracle实例只能对应一个库,安装后3G左右,贼烦

b.操作区别:

主键:MySQL一般使用自动增长类型,而Oracle则需要使用序列对象

单引号的处理:MySQL里可以用双引号包起字符串,Oracle里只可以使用单引号

分页处理:MySQL用limit处理,而Oracle需要使用内建视图和ruwnum伪列

c.事务处理:

MySQL默认自动提交(写一行处理一行)

Oracle默认不自动提交,需要用户使用TCL(commit,rollback)语言进行事务提交

5.MySQL中的数据类型

37982f35c691

整型

37982f35c691

浮点型

37982f35c691

字符型

37982f35c691

日期类型

6.MySQL的简单操作

MySQL也有自带的处理窗口,也有第三方可视化插件(eg:Navicat for MySQL),这里演示命令窗口的简单操作

首先打开命令窗口并输入密码登录

37982f35c691

打开命令窗口

37982f35c691

登录MySQL

创建数据库

语法:create database 数据库名 default character set 编码集 ;

编码集可以省略使用默认编码集

37982f35c691

创建

查看所有库

语法:show databases;

37982f35c691

查看

删除数据库

语法:drop database 数据库名;

37982f35c691

删除数据库

选择数据库(在哪个库中进行操作)

语法:use 数据库名称;

37982f35c691

选择

在当前库中创建表

语法:create table 表名(字段名 数据类型....)

37982f35c691

创建表

查看当前库中所有表

37982f35c691

查看当前库中所有表

添加数据

insert into 表名(列名1,列名2...) values(值1,值2...)

37982f35c691

添加数据

查看表中数据

语法:select * from 表名    (可随需求修改查询语句)

更改数据

语法:update 表名 set 列名1=值1,列名2=值2...[where子语句]

37982f35c691

修改表名、修改列名、修改列类型、添加列

语法:alter table 旧表名 rename 新表名

语法:alter table 表名 change column 旧列名 新列名 类型

语法:alter table 表名 modify 列名 新类型

语法:alter table 表名 add column 新列名 类型

37982f35c691

修改与添加

删除列

语法:alter table 表名 drop column 列名;

删除某条数据:delete from 表名  where子句;

37982f35c691

删除列

删除表

语法:drop table 表名;

37982f35c691

删除表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值