mysql数据库中索引的创建与删除

mysql数据库中索引的创建与删除

ID:8976221

大小:25.98 KB

页数:9页

时间:2018-04-13

mysql数据库中索引的创建与删除_第1页
mysql数据库中索引的创建与删除_第2页
mysql数据库中索引的创建与删除_第3页
mysql数据库中索引的创建与删除_第4页
mysql数据库中索引的创建与删除_第5页
资源描述:

《mysql数据库中索引的创建与删除》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、以下的文章主要是对MySQL数据库的创建与删除,以及索引与更改实际表语句的详细解析,如果你也是MySQL数据库的热捧着的话,你就可以点击以下的文章对其有一个更好的了解,以下就是文章的具体内容。一、创建、删除、索引和更改表可利用CREATETABLE、DROPTABLE和ALTERTABLE语句创建表,然后,对它们进行删除,更改它们的结构。对于它们中的每一条语句,存在MySQL数据库专有的扩充,这些扩充使各语句更为有用。CREATEINDEX和DROPINDEX语句使您能够增加或删除现有表上的索引。二、CREATETABLE语句用CREATETABLE语句创建表。此语句的完整语法是相当复杂

2、的,因为存在那么多的可选子句,但在实际中此语句的应用相当简单。如我们在第1章中使用的所有CREATETABLE语句都不那么复杂。有意思的是,大多数复杂东西都是一些子句,这些子句MySQL数据库在分析后扔掉。参阅附录D可看到这些复杂的东西。看看CREATETABLE语句的各项条款,注意该语句有多少语法是用于REFERENCESCONSTRAINT和CHECK子句的。这些子句涉及外部键、引用完整性及输入值约束。MySQL不支持这些功能,但它分析其语法使其更容易利用在其他数据库系统中建立的表定义。(可以用较少的编辑工作更容易地利用该代码。)如果您从头开始编写自己的表描述,可以完全不管这些子句。

3、本节中我们对它们也不多做介绍。CREATETABLE至少应该指出表名和表中列的清单。例如:除构成表的列以外,在创建表时还可以说明它应该怎样索引。另一个选择是创建表时不进行索引,以后再增加索引。如果计划在开始将表用于查询前,用大量的数据填充此表,以后再创建索引是一个好办法。在插入每一行时更新索引较装载数据到一个未索引的表中然后再创建索引要慢得多。我们已经在第1章中介绍了CREATETABLE语句的基本语法,并在第2章讨论了怎样描述列类型。这里假定您已经读过了这两章,因此我们就不重复这些内容了。在本节下面,我们将介绍一些MySQL3.23中对CREATETABLE语句的重要扩充,这些扩充在构

4、造表方面提供了很大的灵活性,这些扩充为:表存储类型说明符。仅当表不存在时才进行创建。在客户机会话结束时自动删除临时表。通过选择希望表存储的数据来创建一个表。1.表存储类型说明符在MySQL3.23之前,所有用户创建的表都利用的是ISAM存储方法。在MySQL3.23中,可在CREATETABLE语句的列的列表之后指定TYPE=type,以三种类型明确地创建表。其中type可以为MYISAM、ISAM或HEAP。例如:将表转换为HEAP类型可能不是一个好主意,但是,如果希望表一直维持到服务器关闭,可以进行这个转换。HEAP表在服务器退出之前,一直保留在内存中。这三种表类型的一般特点如下:M

5、yISAM表。MyISAM存储格式自版本3.23以来是MySQL数据库中的缺省类型,它有下列特点:如果操作系统自身允许更大的文件,那么文件比ISAM存储方法的大。数据以低字节优先的机器独立格式存储。这表示可将表从一种机器拷贝到另一种机器,即使它们的体系结构不同也可以拷贝。数值索引值占的存储空间较少,因为它们是按高字节优先存储的。索引值在低位字节中变化很快,因此高位字节更容易比较。AUTO_INCREMENT处理比ISAM的表更好。详细内容在第2章讨论。减少了几个索引限制。例如,可对含NULL值的列进行索引,还可以对BLOB和TEXT类型的列进行索引。为了改善表的完整性检查,每个表都具有一

6、个标志,在myisamchk对表进行过检查后,设置该标志。可利用myisamchk–fast跳过对自前次检查以来尚未被修改过表的检查,这样使此管理任务更快。表中还有一个指示表是否正常关闭的标志。如果服务器关闭不正常,或机器崩溃,此标志可用来检测出服务器起动时需要检查的表。ISAM表。ISAM存储格式是MySQL3.23所用的最旧的格式,但当前仍然可用。通常,相对于ISAM表来说,宁可使用MyISAM表,因为它们的限制较少。对ISAM表的支持随着此存储格式被MyISAM表格式所支持很有可能会逐渐消失。HEAP表。HEAP存储格式建立利用定长行的内存中的表,这使表运行得非常快。在服务器停止时

7、,它们将会消失。在这种意义上,这些表是临时的。但是,与用CREATETEMPORARYTABLE所创建的临时表相比,HEAP表是其他客户机可见的。HEAP表有几个限制,这些限制对MyISAM或ISAM表没有,如下所示:索引仅用于“=”和“<=>”比较。索引列中不能有NULL值。不能使用BLOB和TEXT列。不能使用AUTO_INCREMENT列。2.创建不存在的表要创建一个不存在的表,使用CREATETABLEIFNOTEXISTS

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。