图-LAMP
LAMP下的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条记录。
索引分单列索引和组合索引。单列索引,即一个索引只包含单个列,一个表可以有多个单列索引,但这不是组合索引。组合索引,即一个索包含多个列。
索引的类型包括:
(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;
#p#
(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))
- );
#p#
(3)主键索引它是一种特殊的***索引,不允许有空值。一般是在建表的时候同时创建主键索引:
- CREATE TABLE mytable(
- ID INT NOT NULL,
- username VARCHAR(16) NOT NULL,
- PRIMARY KEY(ID)
- );
当然也可以用 ALTER 命令。记住:一个表只能有一个主键。
通过文章大量的介绍,我们肯定清楚了LAMP下MySQL索引情况!
【编辑推荐】
- LAMP快速构建apache web服务器
- LAMP攻略之Apache与PHP的整合过程
- LAMP环境下Apache + SSL Howto译文
- LAMP下Apache-mysql-php安装
- LAMP攻略之重新编译PHP安装扩展和GD库安装与配置
- LAMP环境搭建之Apache的后续配置工作
- LAMP环境搭建之配置PHP