MySQL认证教程:索引有什么用
最新学讯:近期OCP认证正在报名中,因考试人员较多请尽快报名获取最近考试时间,报名费用请联系在线老师,甲骨文官方认证,报名从速!
我要咨询MySQL认证教程:索引有什么用,所有的MySQL列类型能被索引。在相关的列上的使用索引是改进SELECT操作性能的最好方法。
·一个表最多可有16个索引。最大索引长度是256个字节,尽管这可以在编译MySQL时被改变。
· 对于CHAR和VARCHAR列,你可以索引列的前缀。这更快并且比索引整个列需要较少的磁盘空间。对于BLOB和TEXT列,你必须索引列的前缀,你不能索引列的全部。
·MySQL能在多个列上创建索引。一个索引可以由最多15个列组成。(在CHAR和VARCHAR列上,你也可以使用列的前缀作为一个索引的部分)。
虽然随着 MySQL 的进一步开发创建索引的约束将会越来越少,但现在还是存在一些约束的。下面的表根据索引的特性,给出了 ISAM 表和 MyISAM 表之间的差别:
索引的特点ISAM 表MyISAM 表
索引的特点 |
ISAM 表 |
MyISAM 表 |
NULL 值 |
不允许 |
允许 |
BLOB 和 TEXT 列 |
不能索引 |
只能索引列的前缀 |
每个表中的索引数 |
16 |
32 |
每个索引中的列数 |
16 |
16 |
最大索引行尺寸 |
256 字节 |
500 字节 |
从此表中可以看到,对于 ISAM 表来说,其索引列必须定义为 NOT NULL,并且不能对 BLOB 和 TEXT 列进行索引。MyISAM 表类型去掉了这些限制,而且减缓了其他的一些限制。两种表类型的索引特性的差异表明,根据所使用的 MySQL 版本的不同,有可能对某些列不能进行索引。例如,如果使用3.23 版以前的版本,则不能对包含 NULL 值的列进行索引。
索引有如下的几种情况:
·INDEX索引:通常意义的索引,某些情况下KEY是它的一个同义词。索引的列可以包括重复的值。
·UNIQUE索引:唯一索引,保证了列不包含重复的值,对于多列唯一索引,它保证值的组合不重复。
·PRIMARY KEY索引:也UNIQUE索引非常类似。事实上,PRIMARY KEY索引仅是一个具有PRIMARY名称的UNIQUE索引。这表示一个表只能包含一个PRIMARY KEY。