| 网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 |
![]() |
| Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道 |
3 字段索引
所有的MySQL字段类型都能被索引。在相关字段上做索引对提高 SELECT 语句的性能最有效。 网管网www_bitscn_com
每个表的最大索引长度以及最多索引数量是由各自的存储引擎定义好了的。所有的存储引擎对每个表都至少可以支持16个索引,索引长度最小是 256 字节。大部分存储引擎的限制更高。 中国网管论坛bbs.bitsCN.com
索引格式中使用 col_name(length) 语法,就能只对 CHAR 或 VARCHAR 字段最前面的 length 个字符做索引。象类似这样只对字段的前缀部分做索引能让索引文件更小。 网管网www_bitscn_com
MyISAM 和 InnoDB (从MySQL 4.0.14开始)存储引擎还支持在 BLOB 和 TEXT 字段上做索引,但是必须指定索引的前缀长度,例如:
网管网www_bitscn_com
CREATE TABLE test (blob_col BLOB, INDEX(blob_col(10))); |
前缀的长度可以多达255字节(从MySQL 4.1.2开始,MyISAM 和 InnoDB 表支持1000字节)。注意,前缀长度限制是以字节数衡量的,然而 CREATE TABLE 语句中的前缀长度理解成为字符个数。因此在指定字段索引前缀长度时要考虑到使用多字节字符集字段的情况了。
从MySQL 3.23.23开始,就可以创建 FULLTEXT 索引了,它们使用全文搜索。只有 MyISAM 表支持对 CHAR,VARCHAR 和 TEXT 字段做 FULLTEXT 索引。只对整个字段检索有效,不支持部分(前缀)检索。 网管u家u.bitscn@com
从MySQL 4.1.0开始,还可以空间类型字段上做索引。目前,只有 MyISAM 存储引擎支持空间类型。空间索引使用R树索引。 网管bitscn_com
MEMORY (HEAP) 存储引擎支持哈希索引,从MySQL 4.1.0开始,它也支持B树索引。
4 多字段索引 网管联盟bitsCN_com
MySQL可以在多个字段上创建索引,可以由多达15个字段组成。对特定的字段类型,还可以使用前缀索引。 中国网管论坛bbs.bitsCN.com
多字段索引可以认为是由索引字段的值连接在一起而成,且经过排序之后的数组。 中国网管论坛bbs.bitsCN.com
MySQL以如下方法使用多字段索引:在 WHERE 子句中指定了已知数量的索引的第一个字段,查询就很快了,甚至无需指定其他字段的值。
网管下载dl.bitscn.com
假定一个表结构如下:
|
0
|
评论加载中…