hc学习平台

 找回密码
 立即注册
搜索
热搜: 活动 交友 javakc
 › 学习交流 › MySql › 请说明数据库主键,外键的作用,以及建立索引的好处及坏处(中科软15分)
查看: 5944|回复: 0
打印 上一主题 下一主题

请说明数据库主键,外键的作用,以及建立索引的好处及坏处(中科软15分)

[复制链接]

2249

主题

0

帖子

0

博客

admin

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

跳转到指定楼层
楼主
发表于2016-08-06 15:50:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
WR

0

主题

1674

帖子

0

博客

WR

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-08 09:22:32 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

主键:唯一标识一条记录,不能重复的,不允许为空

        作用:用来保证数据完整性

        个数:主键只能有一个

外键:表的外键是另一表的主键,外键可以是重复的,可以是空值

        作用:用来和其他表建立关系

        个数:是提高查询排序的速度

索引:该字段没有重复值,但可以有一个空值

        作用:是提高查询排序的速度

        个数:一个表可以有多个唯一索引

聚集索引和非聚集索引的区别?

聚集索引一定是唯一索引但唯一索引不一定是聚集索引

聚集索引,在索引页里直接存放数据,而非聚集索引在索引页里存放的是索引。这些索引指向专门的数据页的数据

沙发
发表于2016-09-08 12:50:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

能够唯一标识一条记录的字段为主键(亦或主码);表(db_role)中主键roleId和表(db_user)中的roleId对应的数值一致,称作表(db_user)的字段roleId为外键(外码);外键表示主表(db_role)和子表(db_user)两张表之间有关系 那么使用SQL语句在数据库中创建表。

建立索引的优点:
1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
3. 可以加速表和表之间的连接。
4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
索引有一些先天不足:
1. 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。
2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性。

0

主题

1700

帖子

0

博客

song

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-08 14:22:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

能够唯一标识一条记录的字段为主键(亦或主码);

表(db_role)中主键roleId和表(db_user)中的roleId对应的数值一致,称作表(db_user)的字段roleId为外键(外码);

外键表示主表(db_role)和子表(db_user)两张表之间有关系。


建立索引的优点:
1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
3. 可以加速表和表之间的连接。
4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。


索引有一些先天不足:
1. 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。
2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性


0

主题

1510

帖子

0

博客

zhangjialong

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-08 14:16:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

主键:

能够唯一标识一条记录的字段为主键(亦或主码),不能重复的,不允许为空。

        作用:用来保证数据完整性
        个数:主键只能有一个

外键:

表(db_role)中主键roleId和表(db_user)中的roleId对应的数值一致,称作表(db_user)的字段roleId为外键(外码);外键表示主表(db_role)和子表(db_user)两张表之间有关系 那么使用SQL语句在数据库中创建表,表的外键是另一表的主键,外键可以是重复的,可以是空值。
        作用:用来和其他表建立关系,是提高查询排序的速度
        个数:看具体情况


索引:

该字段没有重复值,但可以有一个空值
        作用:是提高查询排序的速度
        个数:一个表可以有多个唯一索引


建立索引的优点:
1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
3. 可以加速表和表之间的连接。

4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。


索引有一些先天不足:
1. 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。

2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性。


使用原则:

1. 在大表上建立索引才有意义。
2. 在where子句或是连接条件上经常使用的列上建立索引,很少或从不引用的字段不建索引。

3. 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间.
4. 逻辑型的字段,如男或女(是或否)等,不建立索引。
5. 索引只在返回较少比例的数据时才比全表扫描有效,大多数情况下认为结果集很大,一般大于5%-15%就不使用索引查询。
6. != 将不使用索引, 记住, 索引只能告诉你什么存在于表中, 而不能告诉你什么不存在于表中.
7. ||是字符连接函数. 就象其他函数那样,停用了索引。
8. + 是数学函数. 就象其他数学函数那样,停用了索引。
9. like "%_" 百分号在前时,停用了索引。
10. 字符型字段为数字时在where条件里不添加引号时,停用了索引
11. 相同的索引列不能互相比较,这将会启用全表扫描。

     

聚集索引和非聚集索引的区别?

聚集索引一定是唯一索引但唯一索引不一定是聚集索引
聚集索引,在索引页里直接存放数据,而非聚集索引在索引页里存放的是索引。这些索引指向专门的数据页的数据

0

主题

1451

帖子

0

博客

gaoye

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-08 14:15:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

能够唯一标识一条记录的字段为主键(亦或主码);表(db_role)中主键roleId和表(db_user)中的roleId对应的数值一致,称作表(db_user)的字段roleId为外键(外码);

外键表示主表(db_role)和子表(db_user)两张表之间有关系。

建立索引的优点:
1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
3. 可以加速表和表之间的连接。
4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

索引有一些先天不足:
1. 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。
2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性。

0

主题

1450

帖子

0

博客

Sarbr

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-08 14:32:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

能够唯一标识一条记录的字段为主键

表1中主键roleId和表2中的roleId对应的数值一致,称作表1的字段roleId为外键


建立索引的优点:
1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
3. 可以加速表和表之间的连接。
4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
索引有一些先天不足:
1. 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。
2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性。

0

主题

1636

帖子

0

博客

renmihe

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-09 09:22:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

主键:能够唯一标识数据表中每条数据的字段,并且该字段非空值,就可以用primary key 声明该字段为主键

外键:如果T表中的t1字段和F表中主键是对应的,就可以用foreign key声明t1字段为外键


--创建学生表
create table 学生表(
    学生ID varchar2(20) not null primary key,    //非空的主键
    学生姓名 varchar2(6) ,
    学生性别 varchar2(2),
    学生年龄 number(2),
    学号 varchar2(12)
);
--创建科目表
create table 科目表(
     科目ID varchar2(20) not null primary key,      //非空的主键
     科目名称 varchar2(16)
);
--创建成绩表
create table 成绩表(
     学生ID varchar2(12),
     科目ID varchar2(20),
     成绩 number(3),
     foreign key(学生ID)references 学生表(学生ID),       //与学生表主键对应的外键
     foreign key(科目ID)references 科目表(科目ID)       //与科目表主键对应的外键
);

建立索引的优点:
1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
3. 可以加速表和表之间的连接。
4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。


索引有一些先天不足:
1. 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。
2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性。

3.实践表明,不恰当的索引不但于事无补,反而会降低系统性能。因为大量的索引在进行插入、修改和删除操作时比没有索引花费更多的系统时间。


使用原则:
1. 在大表上建立索引才有意义。
2. 在where子句或是连接条件上经常使用的列上建立索引,很少或从不引用的字段不建索引。

3. 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间.
4. 逻辑型的字段,如男或女(是或否)等,不建立索引。
5. 索引只在返回较少比例的数据时才比全表扫描有效,大多数情况下认为结果集很大,一般大于5%-15%就不使用索引查询。
6. != 将不使用索引, 记住, 索引只能告诉你什么存在于表中, 而不能告诉你什么不存在于表中.
7. ||是字符连接函数. 就象其他函数那样,停用了索引。
8. + 是数学函数. 就象其他数学函数那样,停用了索引。
9. like "%_" 百分号在前时,停用了索引。
10. 字符型字段为数字时在where条件里不添加引号时,停用了索引
11. 相同的索引列不能互相比较,这将会启用全表扫描。


0

主题

1721

帖子

0

博客

XIAOC

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-09 15:39:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

字段被设置为主键后,字段内不可以出现重复的值

当一个表中的字段中只有另一个表中主键数据,把前者字段成为后者的外键,表示两张表的关系;

索引的好处:提高操作效率,可以保证每行数据的唯一性,可以加快表与表之间的连接

          坏处:增加内存的占有量,当数据表更新时,检索也要更新

0

主题

1458

帖子

0

博客

梦紫菱0124

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-09 18:55:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

答:主键设置字段的唯一性,外键可以根据其他表格的主键字段关联,加强两个表之间的联系

建立索引的优点:
1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
3. 可以加速表和表之间的连接。
4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
索引有一些先天不足:
1. 建立索引,系统要占用大约为表的 1.2 倍的硬盘和内存空间来保存索引。
2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引
的一致性。

0

主题

1518

帖子

0

博客

Cracia

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-09 19:48:53 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

主键:一个表中的唯一标识,不允许被标识的字段有重复

外键:另一个表中的主键,字段的数据类型和字段名称完全一致时,为此表的主键;

索引优缺点分析
建立索引的优点: 1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

3. 可以加速表和表之间的连接。 

4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。   
索引有一些先天不足:

1. 建立索引,系统要占用大约为表的 1.2 倍的硬盘和内存空间来保存索引。

2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引 的一致性。


0

主题

1402

帖子

0

博客

马鹏磊

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-09-20 18:15:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

主键

能够唯一标识一条记录的字段为主键(亦或主码),不能重复的,不允许为空。

        作用:用来保证数据完整性
        个数:主键只能有一个

外键:

表(db_role)中主键roleId和表(db_user)中的roleId对应的数值一致,称作表(db_user)的字段roleId为外键(外码);外键表示主表(db_role)和子表(db_user)两张表之间有关系 那么使用SQL语句在数据库中创建表,表的外键是另一表的主键,外键可以是重复的,可以是空值。
        作用:用来和其他表建立关系,是提高查询排序的速度
        个数:看具体情况


索引:

该字段没有重复值,但可以有一个空值
        作用:是提高查询排序的速度
        个数:一个表可以有多个唯一索引


建立索引的优点:
1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
3. 可以加速表和表之间的连接。

4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。


索引有一些先天不足:
1. 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。

2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性。


使用原则:

1. 在大表上建立索引才有意义。
2. 在where子句或是连接条件上经常使用的列上建立索引,很少或从不引用的字段不建索引。

3. 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间.
4. 逻辑型的字段,如男或女(是或否)等,不建立索引。
5. 索引只在返回较少比例的数据时才比全表扫描有效,大多数情况下认为结果集很大,一般大于5%-15%就不使用索引查询。
6. != 将不使用索引, 记住, 索引只能告诉你什么存在于表中, 而不能告诉你什么不存在于表中.
7. ||是字符连接函数. 就象其他函数那样,停用了索引。
8. + 是数学函数. 就象其他数学函数那样,停用了索引。
9. like "%_" 百分号在前时,停用了索引。
10. 字符型字段为数字时在where条件里不添加引号时,停用了索引
11. 相同的索引列不能互相比较,这将会启用全表扫描。

Yc

0

主题

847

帖子

0

博客

Yc

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-10-06 17:12:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

主键 具有唯一性 能够标示唯一ID 等

外键 可以建立两个表之间的链接 

建立索引方便数据的查询 在大表上建立索引 小表不需建立索引

索引是用于加速数据查询的对象 

使用索引可以大大加快数据的数据的检索速度 

通过创建唯一性索引,可以保证数据库表中的每一行数据的唯一性

可以加速表与表之间的链接


建立索引 系统要占用大约为表的 1.2倍内存空间  来保存索引 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新 一维持数据的一致性

jyx

0

主题

694

帖子

0

博客

jyx

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-10-31 17:02:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

建立索引的优点:
1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
3. 可以加速表和表之间的连接。
4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
索引有一些先天不足:
1. 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。
2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性。

 

数据库主键,外键的作用:

主键作用:主键具有唯一性,能够保证每条数据的唯一性

外键作用:用于与另一张表的关联,时能确定另一张表记录的字段,用户保持数据的一致性

0

主题

159

帖子

5

博客

Danding

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2016-11-04 17:17:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

通过主键可以找到所对应的的外键的数据

建立索引的优点:
1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
3. 可以加速表和表之间的连接。
4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。


索引有一些先天不足:
1. 建立索引,系统要占用大约为表的 1.2 倍的硬盘和内存空间来保存索引。
2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引
的一致性。

0

主题

637

帖子

0

博客

wangwei37079

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-02-16 15:39:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
建立索引的优点:
1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
3. 可以加速表和表之间的连接。
4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。
索引有一些先天不足:
1. 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。

2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性。

在ORACLE数据库中存储的数据也是以这种形式保存的,我们称之为--数据表,横向数据包括第一行我们称之为--行(记录),其中第一行中每个纵向的数据我们称之为--字段,每个字段对应的一列数据是此字段对应的值。能够唯一标识一条记录的字段为主键(亦或主码);表(db_role)中主键roleId和表(db_user)中的roleId对应的数值一致,称作表(db_user)的字段roleId为外键(外码);外键表示主表(db_role)和子表(db_user)两张表之间有关系

0

主题

1932

帖子

0

博客

740317431

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-08-21 13:49:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

主键是一行数据 的唯一标识,外键是在多表连接中外键用来约束某个字段的取值

 

建立索引的优点:

1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。

2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。

3. 可以加速表和表之间的连接。

4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。

索引有一些先天不足:

1. 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。

2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性。

0

主题

1902

帖子

0

博客

王之神判

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-08-22 12:29:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

主键可以避免数据重复,确保数据的唯一性

外键可以确保数据的完整性

建立索引的优点:
1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。 
3. 可以加速表和表之间的连接。 
4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。 
索引有一些先天不足:
1. 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。
2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性。


0

主题

651

帖子

0

博客

hanqian

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-08-26 11:40:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

主键:主键是唯一的且不能为空,可以确保数据更新时的准确性。

外键:用于建立表与表之间的连接,便于维护。

建立索引的好处:加快数据的查询速度,加快表与表之间的连接,加快数据的排序和分组,确保数据的唯一性。

坏处:占用较大的内存,数据更新时索引也要随之更新,不利于维护

0

主题

704

帖子

0

博客

sunshuang

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-09-08 09:20:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

主键能够唯一标识一条记录的字段;

外键表示了主表和字表两张表之间的关系;

建立索引的有点:

1、可以大大加快数据的检索速度,

2、通过创建唯一性索引,可以保证数据在表中每一行数据的唯一性,

3、可以加速表和表之间的连接。

4、在使用分组和排序字句进行数据检索时,同样可以显著减少查询分组和排序时间。

不足:

1、建立索引,系统要占用大约为表的1.2倍的内存空间来保存索引。

2、更新数据的时候,系统必须要有额外的时间来同时对索引进行跟新,以维持数据和索引的一致性。

0

主题

1694

帖子

0

博客

wulinan

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2017-09-25 08:55:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

主键

能够唯一标识一条记录的字段为主键(亦或主码),不能重复的,不允许为空。

        作用:用来保证数据完整性
        个数:主键只能有一个

外键:

表(db_role)中主键roleId和表(db_user)中的roleId对应的数值一致,称作表(db_user)的字段roleId为外键(外码);外键表示主表(db_role)和子表(db_user)两张表之间有关系 那么使用SQL语句在数据库中创建表,表的外键是另一表的主键,外键可以是重复的,可以是空值。
        作用:用来和其他表建立关系,是提高查询排序的速度
        个数:看具体情况


索引:

该字段没有重复值,但可以有一个空值
        作用:是提高查询排序的速度
        个数:一个表可以有多个唯一索引


建立索引的优点:
1. 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。
2. 通过创建唯一性索引,可以保证数据库表中每一行数据的唯一性。
3. 可以加速表和表之间的连接。

4. 在使用分组和排序子句进行数据检索时,同样可以显著减少查询中分组和排序的时间。


索引缺点
1. 建立索引,系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引。

2. 更新数据的时候,系统必须要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性。


使用原则:

1. 在大表上建立索引才有意义。
2. 在where子句或是连接条件上经常使用的列上建立索引,很少或从不引用的字段不建索引。

3. 在经常需要排序的列上创建索引,因为索引已经排序,这样查询可以利用索引的排序,加快排序查询时间.
4. 逻辑型的字段,如男或女(是或否)等,不建立索引。
5. 索引只在返回较少比例的数据时才比全表扫描有效,大多数情况下认为结果集很大,一般大于5%-15%就不使用索引查询。
6. != 将不使用索引, 记住, 索引只能告诉你什么存在于表中, 而不能告诉你什么不存在于表中.
7. ||是字符连接函数. 就象其他函数那样,停用了索引。
8. + 是数学函数. 就象其他数学函数那样,停用了索引。
9. like "%_" 百分号在前时,停用了索引。
10. 字符型字段为数字时在where条件里不添加引号时,停用了索引
11. 相同的索引列不能互相比较,这将会启用全表扫描。

0

主题

445

帖子

0

博客

wangxiaoqing

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2018-09-14 19:39:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

主键只有一个,起到约束作用。且主键不能重复,保证数据的唯一性

外键可以根据相同的连立两个表,达到方便查找的作用,保证数据的完整性

建立索引可以更好的查找,索引占用存储空间,赛来存储空间的消耗

0

主题

982

帖子

0

博客

m1359292934

Rank: 9 Rank: 9 Rank: 9

积分

IP 编辑 禁止 帖子 清理

沙发
发表于2019-08-20 20:33:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

主键:唯一标识一条记录,不允许重复,不允许为空   

       作用:用来保证数据的完整性

       个数:主键只能有一个

外键:表的外键是另一个表的主键,外键是可以重复的,可以是空值

       作用:用来和其他表建立关系

       个数:是提高查询排序的速度

索引:

优点:1.可以大大加快数据的检索速度,这也是创建索引的最重要原因

2.通过创建唯一索引,可以保证数据库表中每一行数据的唯一性。

3.可以加速表与表之间的链接

4.在使用分组和排序字句进行数据检索时,同时可以显著减少查询中分组和排序的时间

缺点:1.建立索引。系统要占用大约为表的1.2倍的硬盘和内存空间来保存索引

2.更新数据的时候,系统要有额外的时间来同时对索引进行更新,以维持数据和索引的一致性



站点统计|举报|Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, , Processed in 0.195171 second(s), 9 queries .

Powered by javakc! X1.0

© 2004-2014 javakc

f1208.com 备案号:京ICP备14030918号-1

返回顶部