《mysql高级部分非常实用的不要分包含索引建立优化函数存储过程触发器及游标.doc

《mysql高级部分非常实用的不要分包含索引建立优化函数存储过程触发器及游标.doc

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《mysql高级部分非常实用的不要分包含索引建立优化函数存储过程触发器及游标

Mysql 高级部分 (1) 索引(index) 1 (2) 视图(view) 2 (3) 触发器(trigger) 6 (4) 游标(cursor) 8 (5) 事务(Transaction) 10 (6) 存储过程(Stored Procedure) 12 索引(index) 索引是一个单独的、物理的数据库结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单。 优点: 大大加快数据的检索速度;创建唯一性索引,保证数据库表中每一行数据的唯一性;加速表和表之间的连接;在使用分组和排序子句进行数据检索时,可以显著减少查询中分组和排序的时间。 缺点: 索引需要占物理空间当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,降低了数据的维护速度。 更好的理解索引的提示: 如果经常使用表中的某一列或某几列为条件进行查询,且表中的数据量比较大时,可以创建索引,以提高查询的速度。 索引是与表关联的可选结构。 通过有目的的创建索引,可以加快对表执行SELECT语句的速度。 不管索引是否存在,都无需修改任何SQL语句的书写方式。索引只是一种快速访问数据的途径,它只影响查询执行的效率。 可以使用CREATE INDEX命令在一列或若干列的组合上创建索引。 创建索引时,将获取要创建索引的列,并对其进行排序。然后,将一个指针连同每一行的索引值存储起来,组成键值对(目录名和页码)。使用索引时,系统首先通过已排序的列值执行快速有哪些信誉好的足球投注网站,然后使用相关联的指针值来定位具有所要查找值的行。 一旦创建了索引,MySQL会自动维护和使用它们。 只要修改了数据,如添加新行、更新现有行或删除行, MySQL都会自动更新索引。 但是为表创建过多的索引会降低更新、删除以及插入的性能,因为MySQL还必须更新与该表关联的索引。 索引的分类 普通索引:这是最基本的索引,它没有任何限制它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引 索引的创建: 普通(唯一)索引的创建: CREATE [UNIQUE] INDEX index_name ON tbl_name(index_col_name,…) index_col_name: col_name[(length)][ASC|DESC] 对于字符类型的列,可以编制“前缀索引”,Length表示按照列的指定长度的字符串索引 创建组合索引: CREATE INDEX index_name ON tbl_name(index_col_name1,index_col_name2,..) 基于(列A,列B)两列创建索引: 可应用索引的情况:A;AB两列结合; 不可用索引的情况:B Create index index_name on table_name(列A,列B); 其他创建索引的方式: 创建表时创建索引: CREATE TABLE tbl_name ( 列的定义,……, INDEX|KEY [idx_name](index_col_name) ); Eg: CREATE TABLE t1 (tid int primary key, #既创建约束,又创建索引 tname varchar(20), index idx_tname(tname), #创建一个普通索引 tbirthday date ); 修改表时创建索引: ALTER TABLE tbl_name ADD INDEX|KEY [idx_name](indxe_col_name); Eg: ALTER TABLE t1 ADD KEY (tbirthday); 查看索引:Show index|keys from 表名;(SHOW KEYS FROM t1;) 删除索引:drop index 索引名 on 表名。(drop index c on t3;) 视图(view) 从用户角度来看,一个视图是从一个特定的角度来查看数据库中的数据。从数据库系统内部来看,一个视图是由SELECT语句组成的查询定义的虚拟表,视图是由一张或多张表中的数据组成的,从数据库系统外部来看,视图就如同一张表一样,对表能够进行的一般操作都可以应用于视图,例如查询,插入,修改,删除操作等。 视图是一个虚拟表,其内容由查询定义。 视图是一种数据库对象,用户可以象查询普通表一样查询视图。 视图内其实没有存储任何数据,它只是对表的一个查询。 视图的定义保存在数据字典内。创建视图所基于的表为“基表”。 视图一经定义以后,就可以像表一

文档评论(0)

1789811832 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档