数据库应用技术项目化教程-龙浩-6 视图和索引.pptxVIP

  • 1
  • 0
  • 约5.5千字
  • 约 42页
  • 2023-04-18 发布于浙江
  • 举报

数据库应用技术项目化教程-龙浩-6 视图和索引.pptx

;学习目标; 表的索引就如同书的目录一样,通过索引可以大大提高查询速度,改善数据库的性能。其具体表现如下: (1)通过创建唯一性索引,可以保证数据记录的唯一性。 (2)可以大大加快数据的检索速度。 (3) 可以加快表与表之间的连接,这一点在实现数据的参照完整性方面有特别的意义。 (4)在使用ORDEY BY 和GROUP BY子句进行数据检索时,可以显著减少查询中分组和排序的时间。 ; 索引带来的查找速度的提高也是有代价的,因为索引要占用存储空间,而且为了维护索引的有效性,向表中插入数据或者更新数据时,数据库还要执行额外的操作来维护索引。所以,过多的索引不一定能提高数据库的性能,必须科学地设计索引,才能提高数据库的性能。 ; 1.普通索引 普通索引是由KEY或INDEX定义的索引,它是MySQL中的基本索引类型,允许在定义索引的列中插入重复值和空值。该类型索引可以创建在任何数据类型中。 2.唯一索引 唯一索引是由UNIQUE定义的索引,指索引列的值必须唯一,但允许有空值(NULL)。如果是在多个列上建立的组合索引,则列值的组合值必须唯一。 ; 3.全文索引   全文索引是由FULLTEXT定义的索引,是指在定义索引的列上支持值的全文查找。它只能创建在CHAR、VARCHAR或TEXT类型的字段上。 查询关键字LIKE在大都数情况下都能完成需求,但是在列的内容十分大的时候,LIKE的性能就不能令人满意了,因为这个关键字并没有保证每次查询都能用上索引。因此,就可以使用全文索引。 全文索引的缺点:占用存储空间更大,使用时,如果内存一次性装不下全部索引,则查询性能显著降低;对于增删改操作时,需要对全文索引做更多的维护;对MySQL的版本选择有要求。; 4.空间索引 空间索引是由SPATIAL定义的索引,是只能在空间数据类型(GEOMETRY、POINT、LINESTRING和POLYGON)的列上建立的索引。 需要注意的是,创建空间索引的字段,必须将其声明为NOT NULL。 ; 5.单列索引    单列索引指的是在表中单个字段上创建索引,它可以是普通索引、唯一索引或者全文索引,只要保证该索引只对应表中的一个字段即可。 6.多列索引 多列索引指的是在表中多个字段上创建的索引。只有在查询条件中使用了这些字段中的第一个字段时,该索引才会被使用。 ; 索引并非越多越好 避免对经常更新的表建立过多的索引 数据量小的表最好不要使用索引 在不同值少的列上不要建立索引 为经常需要排序、分组和联接操作的字段建立索引 ;用的CREATE TABLE命令创建表的时候就创建索引。其语法格式如下: CREATE TABLE 表名 (字段名 数据类型[完整性约束条件], ... 字段名 数据类型, UNIQUE|FULLTEXT|SPATIAL] INDEX|KEY [别名](字段名[(长度)]) [ASC|DESC]); 参数说明: UNIQUE: 该选项表示创建唯一索引,在索引列中不能有相同的列值存在。 FULLTEXT: 该选项表示创建全文索引。 SPATIAL: 该选项表示创建空间索引。 别名:该选项表示创建索引的名称。不加此选项,则默认用创建索引的字段名为该索引名称。 长度:该选项指定字段中用于创建索引的长度。不加此选项,则默认用整个字段内容创建索引。 ASC|DESC:该选项表示创建索引时的排序方式。其中ASC为升序排列,DESC为降序排列。默认为升序排列。 ;创建班级代码表tb_bjdmb2,同时在表的BJMC字段上建立普通索引。;使用SHOW CREATE TABLE语句查看表的结构。 可以看出,BJMC字段上已经创建了一个名为BJMC的索引。 ;为了查看索引是否被使用,可以使用EXPLAIN语句进行查看。 explain select bjmc from tb_bjdmb where BJMC=自动化191 \G 从显示结果可以看出,possible_keys和key的值都为BJMC,说明BJMC索引已经存在并且已经开始被使用了。 ; 一、使用DROP INDEX删除索引 其语法格式如下: DROP INDEX 索引名 ON 表名; ;二、使用的ALETR TABLE删除索引 其语法格式如下: ALTER TABLE 表名 DROP INDEX 索引名; ;视图是一种数据库对象,是从一个或多个基表

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档