1.主键索引
-- 删除主键索引
ALTER TABLE department DROP PRIMARY KEY;
-- 添加主键索引
ALTER TABLE department ADD PRIMARY KEY (id);
2. 使用ALTER 命令添加和删除索引
ALTER table mytable ADD UNIQUE [indexName] (username(length));
这条语句创建索引的值必须是唯一的(除了NULL外,NULL可能会出现多次)。ALTER TABLE tbl_name ADD INDEX index_name (column_list);
添加普通索引,索引值可出现多次。ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list);
该语句指定了索引为 FULLTEXT ,用于全文索引。
ALTER TABLE `meituan_bill_order` DROP INDEX `uniq_1`; -- 删除
ALTER TABLE `meituan_bill_order` ADD UNIQUE `uniq_1` ( `bill_period`, `sqt_biz_order_id` ); -- 增加
补充全文索引
FULLTEXT索引主要用于全文搜索,当你需要在文本数据上进行高效的搜索时,可以考虑使用FULLTEXT索引。
以下是一些常见的使用FULLTEXT索引的情况:
- 文章或博客系统:你可能希望用户能够通过关键词搜索文章或博客,FULLTEXT索引可以加快搜索速度并提供更准确的结果。
- 电子商务网站:当你想要实现商品搜索功能时,FULLTEXT索引可以帮助用户在商品标题、描述、标签等文本信息中进行关键词搜索。
- 社交网络:在社交网络中,用户通常希望能够搜索到他们感兴趣的话题、用户或帖子。FULLTEXT索引可以提供快速的搜索结果。
- 论坛或问答网站:FULLTEXT索引可以帮助用户在大量的帖子或问题中快速找到相关的内容。
- 日志文件或文档管理系统:FULLTEXT索引可以帮助用户快速搜索和定位特定的日志记录或文档。
需要注意的是,FULLTEXT索引适用于大量文本数据的搜索,但并不适用于所有类型的数据库查询。对于其他类型的查询,例如精确匹配或范围查询,可能需要使用其他类型的索引。
当在MySQL数据库中创建FULLTEXT联合索引时,需要使用CREATE INDEX语句。以下是一个示例,演示如何创建一个包含FULLTEXT联合索引的表:
CREATE TABLE my_table (
id INT NOT NULL AUTO_INCREMENT,
title VARCHAR(255),
content TEXT,
created_at DATETIME,
PRIMARY KEY (id),
FULLTEXT INDEX idx_title_content (title, content)
) ENGINE=InnoDB;
在上述示例中,我们创建了一个名为my_table
的表,包含了四个列:id
、title
、content
和created_at
。其中,id
列被定义为主键。
FULLTEXT联合索引是通过在CREATE TABLE语句中声明FULLTEXT INDEX
来创建的。在示例中,我们创建了一个名为idx_title_content
的FULLTEXT联合索引,包含了title
和content
两列。这将允许我们在title
和content
上进行全文搜索。
最后,通过指定ENGINE=InnoDB
,我们选择了InnoDB存储引擎,但你可以根据自己的需求选择适合的存储引擎。
请根据你的具体需求和表结构修改上述示例中的表名、列名和索引名等信息,并确保你的MySQL版本支持FULLTEXT索引。
3.删除索引
DROP INDEX [indexName] ON mytable;
删除索引ALTER TABLE department DROP INDEX DNAME;
删除的唯一索引也是这个命令
- 删除唯一索引
ALTER TABLE department DROP INDEX unique_01;
其中department
是表名,unique_01
是自定义唯一索引名。
4. 添加唯一索引
-- 添加唯一索引
ALTER TABLE department ADD UNIQUE `unique_01` (`DNAME`);