亲宝软件园·资讯

展开

图文详解如何在navicat中导入excel表格数据

东湖散人 人气:0

基础操作篇

1. 首先打开navicat 软件,进入后打开连接

2. 进入后选择新建数据库

3. 数据库名随便输入一个,字符集选择 utf8,排序规则选择utf8_general_ci ,这样可以最大程度地支持中文 ,点击好,新建数据库

4. 打开刚刚创建的数据库:

5. 进去后在表这一列选择导入向导

6. 进入后选择excel 文件(*.xls, *.xlsx) 选项,点击继续

7. 选择添加文件,将文件加入,点击继续

8.选中加载出来的数据表,选择继续 

9.默认用第一行作为sql 表的表头,第二行开始作为真实的数据内容,点击继续

10.点击继续

11.映射字段这一步可以对表字段进行一定的调整,在不需要调整的情况下点击继续(默认以刚选择的第一行左右sql 的表字段)

12.接下来一般选择追加模式,点击继续

(追加,不会清空掉原有数据,如需要导入多张表的情况下,可以选择追加) 

13.接下来点击开始即可导入,记得一定要点开始!!!!

14. 60 多万行数据导入成功,耗时70 多秒,点击完成即可成功导入数据 

16. 点击表里面的sheet1 即可看到数据 

17. 打开命令行运行sql,点击上方表头查询,进入sql 命令窗口

18. 进入后点击图中位置新增查询

19. 进入命令窗口

20. 比如此处我们查询一下总共的导入数据有多少条

SELECT COUNT(1) FROM Sheet1 

21. 得到运行结果如下

好了,以上就完成了从excel 中导入数据到mysql ,并执行sql 语句的过程,我们可以通过写sql 来做各种各样的查询哦~

进阶操作篇

下面为进阶内容,如果遇到查询缓慢,我们可以通过新增索引来解决查询缓慢问题

通过索引可以提效99% 的查询慢问题场景

进入及设计方式如下:

22. 从左栏进入表,点击箭头那的编辑符合那里,进入设计表 

23.进入后选择第二个选项,即索引这一栏,然后进入,就可以看到如下的界面 

24.点击+ 号处,新增索引 

25, 索引名称随便填一个,比如填个newindex,然后字段名选择对应的表头的某一列名称 

26. 关于索引类型选择

索引类型可以选择 normal (普通索引),一般选择,如果能够明确该列中的任意值都不会重复的话,可以选择unique(唯一索引)、fulltext 为全文本索引,一般用于会被like 的字段处,spatial 索引为空间索引,但使用这个,需要将字段 置为not null(或者能够明确非空),我这里选择了normal(因为我里面的数据是有重复的,非唯一) 

  27、关于索引方法选择

索引方法选择BTREE(b+树 索引),也可以选择hash ,一般的随意数据比较难看出两者的区别,但hash 索引对一些范围查询优化得不是很好

28. 至此,一条索引就新建完成啦~ 

29. 保存索引

记得一定要点击保存按钮,然后可以再去原来的查询界面查看查询效果的改进咋样

30.效果对比

此处是一个加入索引前后的效果对比,可以明显看到,加入索引后,查询速度有了很大的提升哦~ 

附:mysql spatial简介_详细介绍mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE

mysql索引类型:FULLTEXT、NORMAL、SPATIAL、UNIQUE的详细介绍

Normal 普通索引

表示普通索引,大多数情况下都可以使用

Unique 唯一索引

表示唯一的,不允许重复的索引,如果该字段信息保证不会重复例如SFZ号用作索引时,可设置为unique

约束唯一标识数据库表中的每一条记录,即在单表中不能用每条记录是唯一的(例如SFZ就是唯一的),Unique(要求列唯一)和Primary Key(primary key = unique + not null 列唯一)约束均为列或列集合中提供了唯一性的保证,Primary Key是拥有自动定义的Unique约束,但是每个表中可以有多个Unique约束,但是只能有一个Primary Key约束。

mysql中创建Unique约束

Full Text 全文索引

表示全文收索,在检索长文本的时候,效果最好,短文本建议使用Index,但是在检索的时候数据量比较大的时候,现将数据放入一个没有全局索引的表中,然后在用Create Index创建的Full Text索引,要比先为一张表建立Full Text然后在写入数据要快的很多

FULLTEXT 用于搜索很长一篇文章的时候,效果最好。用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以。

SPATIAL 空间索引

空间索引是对空间数据类型的字段建立的索引,MYSQL中的空间数据类型有4种,分别是GEOMETRY、POINT、LINESTRING、POLYGON。MYSQL使用SPATIAL关键字进行扩展,使得能够用于创建正规索引类型的语法创建空间索引。创建空间索引的列,必须将其声明为NOT NULL,空间索引只能在存储引擎为MYISAM的表中创建

btree索引和hash索引的区别

1、BTREE(B树(可以是多叉树)) {主流使用}

2、HASH(key,value) 这种方式对范围查询支持得不是很好

hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。

可 能很多人又有疑问了,既然 Hash 索引的效率要比 B-Tree 高很多,为什么大家不都用 Hash 索引而还要使用 B-Tree 索引呢?任何事物都是有两面性的,Hash 索引也一样,虽然 Hash 索引效率高,但是 Hash 索引本身由于其特殊性也带来了很多限制和弊端,主要有以下这些。

(1)Hash 索引仅仅能满足”=”,”IN”和”<=>”查询,不能使用范围查询。

由于 Hash 索引比较的是进行 Hash 运算之后的 Hash 值,所以它只能用于等值的过滤,不能用于基于范围的过滤,因为经过相应的 Hash 算法处理之后的 Hash 值的大小关系,并不能保证和Hash运算前完全一样。

(2)Hash 索引无法被用来避免数据的排序操作。

由于 Hash 索引中存放的是经过 Hash 计算之后的 Hash 值,而且Hash值的大小关系并不一定和 Hash 运算前的键值完全一样,所以数据库无法利用索引的数据来避免任何排序运算;

(3)Hash 索引不能利用部分索引键查询。

对于组合索引,Hash 索引在计算 Hash 值的时候是组合索引键合并后再一起计算 Hash 值,而不是单独计算 Hash 值,所以通过组合索引的前面一个或几个索引键进行查询的时候,Hash 索引也无法被利用。

(4)Hash 索引在任何时候都不能避免表扫描。

前面已经知道,Hash 索引是将索引键通过 Hash 运算之后,将 Hash运算结果的 Hash 值和所对应的行指针信息存放于一个 Hash 表中,由于不同索引键存在相同 Hash 值,所以即使取满足某个 Hash 键值的数据的记录条数,也无法从 Hash 索引中直接完成查询,还是要通过访问表中的实际数据进行相应的比较,并得到相应的结果。

(5)Hash 索引遇到大量Hash值相等的情况后性能并不一定就会比B-Tree索引高。

对于选择性比较低的索引键,如果创建 Hash 索引,那么将会存在大量记录指针信息存于同一个 Hash 值相关联。这样要定位某一条记录时就会非常麻烦,会浪费多次表数据的访问,而造成整体性能低下。

在实际操作过程中,应该选取表中哪些字段作为索引?

为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引,有7大原则:

1.选择唯一性索引

2.为经常需要排序、分组和联合操作的字段建立索引

3.为常作为查询条件的字段建立索引

4.限制索引的数目

5.尽量使用数据量少的索引

6.尽量使用前缀来索引

7.删除不再使用或者很少使用的索引

8. 经常更新修改的字段不要建立索引(针对mysql说,因为字段更改同时索引就要重新建立,排序,而Orcale好像是有这样的机制字段值更改了,它不立刻建立索引,排序索引,而是根据更改个数,时间段去做平衡索引这件事的)

9、不推荐在同一列建多个索引

写在最后:

加载全部内容

相关教程
猜你喜欢
用户评论