mysql为字段增加索引
1. 创建普通索引,在创建table表时候增加
最基础的索引类型, 没有唯一性的限制,只是为了加快数据的访问速度
CREATE TABLE book (
id INT NOT NULL,
NAME VARCHAR ( 64 ),
auth VARCHAR ( 64 ),
COMMENT text,
INDEX ( NAME ));
查看表结构
show create table book;
2.创建唯一索引
减少查询索引列操作的执行时间,对较大的数据表.和普通索引的区别是索引列的值必须唯一.允许有空值,如果是组合索引,列值的组合必须唯一
CREATE TABLE t1 (
id INT NOT NULL,
name VARCHAR ( 30 ) nopt NULL,
UNIQUE INDEX uniqidx ( id ));
3. 创建单列索引
单列索引是为数据表中的某个字段创建的索引,一个表中可以创建多个单列索引.其中1和2都是单列索引
CREATE TABLE t2 (
id INT NOT NULL,
NAME VARCHAR ( 20 ),
INDEX singleidx (NAME ( 20 )));
4. 创建组合索引
组合索引是在读个字段中创建一个索引
CREATE TABLE t3 (
id INT NOT NULL,
name CHAR ( 20 ),
age INT NOT NULL,
info VARCHAR ( 40 ),
INDEX MultiIdx (id,name,age ));
组合索引遵守"最左前缀"规则,利用最左边的列集进行匹配.按照(id, name, age),(id, name), id来进行组合
5. 创建全文索引
FULLTEXT(全文索引)可以用作全文搜索,只有MyISAM存储引擎支持FULLTEXT索引,而且只能为CHAR, VARCHAR,和TEXT创建索引.
CREATE TABLE t4 (
id int not NULL,
name VARCHAR(30),
ahe int not NULL,
info VARCHAR(50),
FULLTEXT INDEX FulltxtIdx(info)ENGINE = MyISAM;
为已经存在的表加索引
1. 使用ALTER TABLE进行创建索引
创建普通索引
ALTER TABLE book ADD INDEX bkNameidx (NAME ( 30 ));
show index from book \G;
为字段增加唯一索引
alter table book add unique index uniqidIdx (id)
增加单列索引
alter table book add index bkcmtIdx(comment(50));
使用create index 创建索引
创建普通索引
create index bknameIdx on book (name)
创建单列索引
create index bkcmtIdx on book (comment(50));
创建组合索引
create index zuheIdx on book (author(20), info(50));
删除索引
- 使用ALTER TABLE 删除索引
ALTER TABLE table_name DROP INDEX index_name;
- 使用DROP INDEX 删除索引
DROP INDEX index_name On table_name