欢迎来到天天文库
浏览记录
ID:10200827
大小:241.48 KB
页数:28页
时间:2018-06-12
《mysql高级部分(非常实用的_不要分)包含索引建立优化_函数_存储过程_触发器_及游标》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Mysql高级部分(1)索引(index)1(2)视图(view)2(3)触发器(trigger)6(4)游标(cursor)8(5)事务(Transaction)10(6)存储过程(StoredProcedure)12(1)索引(index)索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。优点:大大加快数据的检索速度;创建唯一性索引,保证数据库表中每一行数据的唯一性;加速表和表之间的连接;在使用分组和排序子句进行数据检索时,可以显著减少查询中分组
2、和排序的时间。缺点:索引需要占物理空间当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。更好的理解索引的提示:ü如果经常使用表中的某一列或某几列为条件进行查询,且表中的数据量比较大时,可以创建索引,以提高查询的速度。ü索引是与表关联的可选结构。ü通过有目的的创建索引,可以加快对表执行SELECT语句的速度。ü不管索引是否存在,都无需修改任何SQL语句的书写方式。索引只是一种快速访问数据的途径,它只影响查询执行的效率。ü可以使用CREATEINDEX命令在一列或若干列的组合上创建索引。ü创
3、建索引时,将获取要创建索引的列,并对其进行排序。然后,将一个指针连同每一行的索引值存储起来,组成键值对(目录名和页码)。使用索引时,系统首先通过已排序的列值执行快速搜索,然后使用相关联的指针值来定位具有所要查找值的行。ü一旦创建了索引,MySQL会自动维护和使用它们。ü只要修改了数据,如添加新行、更新现有行或删除行,MySQL都会自动更新索引。ü但是为表创建过多的索引会降低更新、删除以及插入的性能,因为MySQL还必须更新与该表关联的索引。索引的分类Ø普通索引:这是最基本的索引,它没有任何限制Ø唯一索引:它与前面的普通索
4、引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一Ø主键索引(通过主键约束间接创建):它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引Ø组合索引:在表中的多个列上创建的索引。组合索引中列的顺序是任意的,可以是相邻的列,也可以是不相邻的列。索引的创建:Ø普通(唯一)索引的创建:CREATE[UNIQUE]INDEXindex_nameONtbl_name(index_col_name,…)index_col_name:col_name[(length)][AS
5、C
6、DESC]对于字符类型的列,可以编制“前缀索引”,Length表示按照列的指定长度的字符串索引Ø创建组合索引:CREATEINDEXindex_nameONtbl_name(index_col_name1,index_col_name2,..)基于(列A,列B)两列创建索引:²可应用索引的情况:A;AB两列结合;²不可用索引的情况:B²Createindexindex_nameontable_name(列A,列B);Ø其他创建索引的方式:²创建表时创建索引:CREATETABLEtbl_name(列的定义,……,IN
7、DEX
8、KEY[idx_name](index_col_name));Eg:CREATETABLEt1(tidintprimarykey,#既创建约束,又创建索引tnamevarchar(20),indexidx_tname(tname),#创建一个普通索引tbirthdaydate);²修改表时创建索引:ALTERTABLEtbl_nameADDINDEX
9、KEY[idx_name](indxe_col_name);Eg:ALTERTABLEt1ADDKEY(tbirthday);Ø查看索引:Showindex
10、key
11、sfrom表名;(SHOWKEYSFROMt1;)Ø删除索引:dropindex索引名on表名。(dropindexcont3;)(1)视图(view)从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。视图是一个虚拟表,其内容由查询定义。概述:ü视图以经过定制的方式显示来自一个或多个
12、表的数据ü视图是一种数据库对象,用户可以象查询普通表一样查询视图。ü视图内其实没有存储任何数据,它只是对表的一个查询。ü视图的定义保存在数据字典内。创建视图所基于的表为“基表”。ü视图一经定义以后,就可以像表一样被查询、修改、删除和更新作用:ü简化数据查询语句ü使用户能从多角度看到同一数据ü提高了数据的安全性ü提供了
此文档下载收益归作者所有