执行计划,数据的导入与导出,mysql(034)

一执行计划

1.执行计划是一条查询语句在oracle中的

执行过程或访问路劲的描述。

2.常用字段的解释

基数(Cardinality):Oracle 估计的

当前操作的返回结果集行数

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

节数

耗费(COST)、CPU 耗费:Oracle 估计

的该步骤的执行成本,用于说明 SQL执

行的代价,理论上越小越好(该值可能

与实际有出入)

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

需的时间.

二.使用执行计划

1.查看执行计划

选中查询语句,按F5.


执行计划,数据的导入与导出,mysql(034)_第1张图片

2.执行顺序

缩进最多的最先执行,缩进相同时,

最上面的最先执行。

三表的访问

1.访问方式

TABLE ACCESS FULL(全表扫描)

TABLE ACCESS BY INDEX ROWID(通过

ROWID 的表存取)

TABLE ACCESS BY INDEX SCAN(索引扫

描)

2.TABLE ACCESS FULL(全表扫描)

Oracle 会读取表中所有的行,并检查

每一行是否满足 SQL 语句中的 Where

限制条件

3.TABLE ACCESS BY INDEX ROWID(通过

ROWID 的表存取)

(1)ROWID

ROWID 是由 Oracle 自动加在表中每

行最后的一列伪列,不会物理存储

ROWID 的值。

(2)ROWID 指出了该行所在的数据文

件、数据块以及行在该块中的位置,

所以通过ROWID 可以快速定位到目标

数据上,这也是 Oracle 中存取单行

数据最快的方法。

4.TABLE ACCESS BY INDEX SCAN(索

引扫描)

(1)在索引块中,既存储每个索

引的键值,也存储具有该键值

的行的ROWID。

(2)索引扫描其实分为两步

1.扫描索引得到对应

  ROWID。

2.通过ROWID定位到具体的

  行读取数据。


-------------------------------------------------------------------------------------------

一.导入导出需要注意

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

表空间。

2.目标数据在进行导入时,用户名尽量相同

(这样保证用户的权限级别相同)。

3.目标数据库每次在进行数据导入前,应做

好数据备份,以防数据丢失。

4.弄清是导入导出到相同版本还是不同版本

  (oracle10g 版本与 oracle11g 版本)。

5.目标数据导入前,弄清楚是数据覆盖(替

换),还是仅插入新数据或替换部分数据

表。

6.确定目标数据库磁盘空间是否足够容纳新

数据,是否需要扩充表空间。

7.导入导出时注意字符集是否相同,一般

Oracle 数据库的字符集只有一个,并且固

定,一般不改变。

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

二.导出数据格式介绍

Dmp 格式:.dmp 是二进制文件,可跨平

台,还能包含权限,效率好。

Sql 格式:.sql 格式的文件,可用文本

编辑器查看,通用性比较好,效率不如

第一种,适合小数据量导入导出。尤其

注意的是表中不能有大字段

(blob,clob,long),如果有,会报

错。

Pde 格式:.pde 格式的文件,.pde 为

PL/SQL Developer 自有的文件格式,只

能用 PL/SQL Developer 工具导入导

出,不能用文本编辑器查看。

三.传统方式 exp(导出)和(imp)导入

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:只能使用一种;

---------------------------------------------------------------------------------------------------------------

一.mysql

1.MySQL 版本说明

MySQL Community Server 社区版本,开源免

费,但不提供官方技术支持。

MySQL Enterprise Edition 企业版本,需付

费,可以试用 30 天。

MySQL Cluster 集群版,开源免费。可将几

个 MySQL Server 封装成一个 Server。

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

2.MySQL 与 Oracle 的区别

(1)实例区别

MySQL 是轻量型数据库,开源免费。

Oracle 是收费的而且价格非常高。

MySQL 一个实例可以操作多个库,Oracle

一个实例只能对应一个库。

MySQL 安装完后 300M 而 Oracle 有 3G

左右。

(2)操作区别

主键: MySQL 一般使用自动增长类型,

而 Oracle 则需要使用序列对象。

单引号的处理: MySQL 里可以用双引号

包起字符串,ORACLE 里只可以用单引号

包起字符串。

分页的 SQL 语句: MYSQL 用 LIMIT,

而 Oracle 需要使用内建视图和 rownum

伪列。

事务处理:MySQL 默认是自动提交,而

Oracle 默认不自动提交,需要用户 CTL

语言进行事务提交。

二.数据类型

1.数值类型


执行计划,数据的导入与导出,mysql(034)_第2张图片

2.浮点型


执行计划,数据的导入与导出,mysql(034)_第3张图片

3.字符串型


执行计划,数据的导入与导出,mysql(034)_第4张图片

4.char 和 varchar

(1)char(n) 若存入字符数小于 n,则以

空格补于其后,查询之时再将空格去

掉。所以 char类型存储的字符串末尾不

能有空格,varchar 不限于此。

(2)char 类型的字符串检索速度要比

varchar 类型的快。

5.varchar 和 text

(1)varchar 可指定 n,text 不能指

定,内部存储 varchar 是存入的实际

符数 +1 个字节(n<=255)或 2 个字节

(n>255),text 是实际字符数 +2 个字

节。

(2)text 类型不能有默认值。

(3)varchar 可直接创建索引,text 创

建索引要指定前多少个字符。varchar

查询速度快于 text, 在都创建索引的情

况下,text 的索引似乎不起作用。

6.日期类型


执行计划,数据的导入与导出,mysql(034)_第5张图片

7.二进制数据(BLOB)

(1)BLOB 和 TEXT 存储方式不同,TEXT

以文本方式存储,英文存储区分大小

写,而 Blob是以二进制方式存储,不分

大小写。

(2)BLOB 存储的数据只能整体读出。

(3)TEXT 可以指定字符集,BLOB 不用

指定字符集。

三.增

1.创建数据库

create database 数据库名 default

character set utf8;

2.使用 DDL 语句添加列

alter table表名 ADD COLUMN 新列名

类型

四.删

1.删除数据库

Drop database 数据库名称

2.创建表

create table (表名 列名,...)

3.删除表

drop table 表名

4.使用 DDL 语句删除列

alter table 表名 drop column 列名

五.改

1.修改表名

alter table 旧表名 rename 新表名

六.查

1.查看数据库

show databases

2.查看数据库编码:

select schema_name,

default_character_set_name  from

information_schema.schemata  where

schema_name = '数据库名';

3.查看已创建的表

Show 表名

你可能感兴趣的:(执行计划,数据的导入与导出,mysql(034))