MySQL索引类型一览 让MySQL高效运行起来

来源:asp之家 时间:2010-04-22 16:52:00 

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

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

CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL ); 我们随机向里面插入了10000条记录,其中有一条:5555, admin。

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

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

MySQL索引类型包括:

(1)普通索引

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

◆创建索引

CREATE INDEX indexName ON mytable(username(length)); 如果是CHAR,VARCHAR类型,length可以小于字段实际长度;如果是BLOB和TEXT类型,必须指定 length,下同。

◆修改表结构

ALTER mytable ADD INDEX [indexName] ON (username(length)) ◆创建表的时候直接指定

CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, INDEX [indexName] (username(length)) ); 删除索引的语法:

DROP INDEX [indexName] ON mytable;

(2)唯一索引

它与前面的普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。它有以下几种创建方式:

◆创建索引

CREATE UNIQUE INDEX indexName ON mytable(username(length)) ◆修改表结构

ALTER mytable ADD UNIQUE [indexName] ON (username(length)) ◆创建表的时候直接指定

CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, UNIQUE [indexName] (username(length)) );

(3)主键索引

它是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时创建主键索引:

CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, PRIMARY KEY(ID) ); 当然也可以用 ALTER 命令。记住:一个表只能有一个主键。

标签:mysql,索引,效率
0
投稿

猜你喜欢

  • getElementsByAttribute

    2009-10-27 12:13:00
  • 基于信息排序的信息理解

    2008-05-16 10:37:00
  • sql怎样显示出评论最多的文章?

    2008-08-08 12:17:00
  • ASP JSON类源码

    2011-04-30 16:38:00
  • 图文教程教你asp编译成dll组件

    2010-07-16 13:16:00
  • Linux操作系统中如何安装MySQL数据库

    2007-10-26 15:58:00
  • 人性化网页设计技巧

    2007-10-15 13:02:00
  • Asp函数介紹(37个常用函数)

    2011-04-11 11:06:00
  • 带中英文翻译功能的收藏夹

    2008-07-31 11:33:00
  • 细节设计之美:扩大可操作区域

    2009-08-01 11:32:00
  • ASP实现多域名同一空间的处理实例

    2008-10-29 09:46:00
  • 经典的退出浏览器弹窗代码

    2008-07-30 12:48:00
  • 在FLASH中调用ASP的方法

    2009-03-09 18:32:00
  • PHP实现异步定时多任务消息推送

    2023-05-25 09:51:29
  • Dreamweaver里使用层的一些建议

    2010-03-25 12:27:00
  • 装载iframe 子页面,自适应高度

    2008-11-20 12:53:00
  • 再谈“字符串拼接”的效率

    2009-04-30 12:48:00
  • 如何将数据库里的记录生成一个Excel文件?

    2009-12-03 20:09:00
  • WAP设计基础

    2011-01-06 12:13:00
  • Varchar与char的区别

    2008-02-28 12:44:00
  • asp之家 网络编程 m.aspxhome.com