MYSQL索引

来源:互联网 发布:开淘宝上卖花卉好赚吗 编辑:程序博客网 时间:2024/04/29 21:57

索引的含义与特点

索引是创建在表上的,对数据库表的一列或者多列的值进行排序的一种结构,可以提高查询的速度。通常有BTREE 和 HASH 两种储存类型。

索引的分类

  1. 普通索引
  2. 唯一性索引(索引值是UNIQUE)
  3. 全文索引 (只有MyISAM支持,索引字段必须是CHAR ,CHARVAR ,TEXT类型)(FULLTEXT)
  4. 单列索引
  5. 多列索引(只有使用了索引中的第一个字段时才会触发索引)
  6. 空间索引(SPATIAL,只有MyISAM支持)

建立索引的原则

  1. 选择唯一性索引
  2. 为经常需要 ORDER BY ,GROUP BY ,DISTINCT ,UNION 的操作的字段建立索引,避免排序操作。
  3. 为经常作为查询条件的字段建立索引
  4. 限制索引的数目
  5. 尽量使用数据量少的索引(使用char(10)而不是char(100))
  6. 尽量使用前缀索引,不使用text,blog的全部来索引
  7. 删除使用很少或者不使用的索引

创建索引

  1. 创建表的时候创建
CREAETE TABLE TABLENAME(    属性名1 数据类型 [完整性约束],    ...    [UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY         [别名] (属性名1 [(长度)] [ASC |DESC]) );

ASC :升序排列
DESC: 降序排列
2. 在已经存在的表上创建索引

CREATE [UNIQUE | FULLTEXT | SPATIAL] INDEX 索引名    ON 表名 (属性名 [(长度)] [ASC |DESC]) 
  1. 使用ALTER TABLE 创建
ALTER TABLE 表名 ADD  [UNIQUE | FULLTEXT | SPATIAL] INDEX     索引名 (属性名 [(长度)] [ASC |DESC]) 
  1. 删除索引
DROP INDEX 索引名 ON 表名;
0 0