创建原理可参考,这里仅给出了mysql创建索引的方法。
1. 创建示例文件
# 创建表格
CREATE TABLE `students` (
std_id int(11) NOT NULL,
std_name varchar(50) NOT NULL,
std_email varchar(50) NOT NULL,
std_phone varchar(30) NOT NULL,
create_date date DEFAULT NULL,
content text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
#插入数据
INSERT INTO students (`std_id, std_name, std_email, std_phone, create_date, content)
VALUES(1, 'admin', '[email protected]', '18729902095', '1983-06-25', 'i am robin'),
(2, 'root', '[email protected]', '2', '1983-12-25', 'i am xiaoluo'),
(3, '110', '[email protected]', '3dsad', '2017-04-28', 'i am lili');
2. 创建普通索引
- 直接创建:
CREATE INDEX std_idx_name ON student(std_name);
- 修改表时创建索引:
ALTER TABLE students ADD INDEX std_idx_name2(std_name);
- 创建表时建立索引:加入
index std_idx_name3(std_name)
- 查看索引:
SHOW INDEX FROM students;
3. 创建唯一索引
INDEX
前加入UNIQUE
- 直接创建:
CREATE UNIQUE INDEX std_idx_name ON student(std_name);
- 修改表时创建索引:
ALTER TABLE students ADD UNIQUE INDEX std_idx_name2(std_name);
- 创建表时建立索引:加入
UNIQUE index std_idx_name3(std_name)
4. 创建主键索引
主键索引是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。一般是在建表的时候同时创建主键索引。
- 修改表时创建索引:
ALTER TABLE students ADD PRIMARY KEY (std_id);
- 创建表时建立索引:加入
primary key ('std_id')
5. 创建全文索引
- 直接创建:
CREATE FULL TEXT INDEX index_name ON students(content);
- 修改表时创建索引:
ALTER TABLE students ADD FULLTEXT INDEX index_name2(content);
- 创建表时创建索引:加入
FULL TEXT (content);
使用:
SELECT * FROM students WHERE MATCH(content) against ('robin');
6. 建立联合索引
- 直接创建:
CREATE FULLTEXT INDEX index_name ON students(email,content);
- 修改表时创建索引:
ALTER TABLE students ADD FULLTEXT INDEX email_content(email,content);
- 创建表时创建索引:加入
FULLTEXT (email,content);
使用:SELECT * FROM students WHERE MATCH(email,content) AGAINST('student robin');
7. 查看索引
SHOW INDEX FROM students;
8. 删除索引
DROP INDEX index_name ON table_name;
ALTER TABLE table_name DROP INDEX index_name;