日期:2014-05-16  浏览次数:20709 次

mysql索引使用

索引是快速搜索的关键。MySQL索引的建立对于MySQL的高效运行是很重要的。下面介绍几种常见的MySQL索引类型。

在数据库表中,对字段建立索引可以大大提高查询速度。假如我们创建了一个 mytable表:

  1. CREATE?TABLE?mytable( ?
  2. ?
  3. ID?INT?NOT?NULL,? ?
  4. ?
  5. username?VARCHAR(16)?NOT?NULL?
  6. ?
  7. ); ?
  8. ?

我们随机向里面插入了10000条记录,其中有一条:5555, admin。

在查找username="admin"的记录 SELECT * FROM mytable WHERE username='admin';时,如果在username上已经建立了索引,MySQL无须任何扫描,即准确可找到该记录。相反,MySQL会扫描所有记录,即要查询10000条记录。

索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索包含多个列。

MySQL索引类型包括:

(1)普通索引

这是最基本的索引,它没有任何限制。它有以下几种创建方式:

◆创建索引

  1. CREATE?INDEX?indexName?ON?mytable(username(length));?

如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length,下同。

◆修改表结构

  1. ALTER?mytable?ADD?INDEX?[indexName]?ON?(username(length))?

◆创建表的时候直接指定

  1. CREATE?TABLE?mytable( ?
  2. ?
  3. ID?INT?NOT?NULL,? ?
  4. ?
  5. username?VARCHAR(16)?NOT?NULL, ?
  6. ?
  7. INDEX?[indexName]?(username(length)) ?
  8. ?
  9. ); ?

删除索引的语法:

  1. DROP?INDEX