文章目录
- MySQL索引
- MySQL索引的类型与创建方法
- 基础索引
- 唯一索引
- **唯一索引的创建** ******``注意唯一索引允许有空值(注意和主键不同)。如果是用组合索引创建,则列值的组合必须唯一。添加唯一键将自动创建唯一索引。``*** ***
- 主键索引
- 组合索引
- **``创建组合索引时,列的顺序很重要。MySQL会按照你在创建索引时列的顺序来优化查询。如果你经常需要按照列的组合来查询数据,确保最经常使用的列排在前面。``**
- 全文索引
- 删除索引
MySQL索引
MySQL索引是一种数据结构,用于提高查询数据的效率。MySQL索引可以被看作是数据库表的“目录”。就像书籍的目录帮助我们快速找到特定章节的位置一样,数据库索引帮助数据库快速找到特定数据记录的位置。
MySQL索引的类型与创建方法
MySQL索引分为五种,分别为基础索引
、唯一索引
、主键索引
、组合索引
、 文本索引
。
MySQL中的索引类型确实可以分为几种,每种类型都有其特定的用途和特性。以下是MySQL中常见的索引类型及其简要说明:
- 基础索引(Primary Key Index):
主键索引是一种特殊的唯一索引,它确保一行的唯一性,并且每个表都必须有一个主键。主键索引的列不能有NULL值,并且表中的每一行都必须有一个唯一的主键值。 - 唯一索引(Unique Index):
唯一索引确保一行的唯一性,即索引列中的值必须是唯一的,但可以有NULL值。唯一索引可以有多个,并且它们可以跨越多个列。 - 组合索引(Composite Index):
组合索引,也称为复合索引,是由多个列组成的索引。这种索引适用于需要根据多个列的组合来查询数据的情况。在创建组合索引时,列的顺序很重要,因为MySQL可能会选择最左边的列进行搜索。 - 文本索引(Full-Text Index):
文本索引用于Full-Text搜索,它可以对 CHAR、VARCHAR 和 TEXT 类型的列进行索引。文本索引允许进行全文搜索,并且可以用于MySQL的MATCH()
against()`语句,以进行复杂的文本比较。 - 主键索引(Primary Key Index):
主键索引(Primary Key Index)是数据库中一种非常重要的索引类型,它的主要作用是保证表中每一行数据的唯一性,并且作为表中所有行的参照标准。
基础索引
基础索引的创建
1.直接创建
create index 索引名 on 表名(列名);
create index id_index on csb;
2.修改表创建
alter table 表名 add index 索引名(列名);
alter table csb add index name_index (name);
3.创建表的时候指定
create table 表名(字段 数据类型,字段 数据类型,字段 数据类型,字段 数据类型,......,index 索引名 (列名))
create table csc (id int(9),name char(15),address char(35),sex char(2),index id_index (id));
唯一索引
唯一索引的创建
***注意唯一索引允许有空值(注意和主键不同)。如果是用组合索引创建,则列值的组合必须唯一。添加唯一键将自动创建唯一索引。
***
1.直接创建
create unique index 索引名 ON 表名(列名);
create unique index name_index csc(name);
2修改表格式创建
alter table 表名 add unique 索引名 (表名);
alter table csc add unique name_index (name);
3创建表时创建
create table 表名(字段 数据类型,字段 数据类型,字段 数据类型,字段 数据类型,......,unique 索引名 (列名))
create table csd (id int(9),name char(15),address char(35),sex char(2),unique name_index (name));
主键索引
设置主键即可
alter table 表名 add primary key (字段);
组合索引
创建组合索引时,列的顺序很重要。MySQL会按照你在创建索引时列的顺序来优化查询。如果你经常需要按照列的组合来查询数据,确保最经常使用的列排在前面。
创建方式
1.建表时创建
create table 表名(字段 数据类型,字段 数据类型,字段 数据类型,字段 数据类型,......,INDEX 索引名 (字段名1,字段名2,字段名3,......));
create table cse (id int(9),name char(15),address char(35),sex char(2),index id_index (id,name,address,sex));
2.直接创建
create index 索引名 on 表名(字段名1,字段名2,字段名3,......)
create index all_index on rye (id,name,address,sex);
3.添加创建
alter tables 表名 add index 索引名(1字段,2字段,3字段,4字段)
alter table loe index all_index(id,name,address,sex);
全文索引
全文索引的工作原理是将文本数据分解成小的数据单元(如单词或短语),然后将这些单元与索引表中的条目关联起来。索引表是一个包含指向包含特定文本单元的文档的指针的数据结构。当用户提交搜索查询时,全文搜索引擎会使用索引表快速定位匹配的文档,并按照相关性对结果进行排序。
1直接创建索引
CREATE FULLTEXT INDEX 索引名 ON 表名 (字段);
create fulltext index index_name ON qwe(name);
2添加创建
alter table 表名 add fulltext index 索引名 (字段)
alter table qwe add fulltext index index_address(address);
3创建表时指定
CREATE TABLE 表名 (字段1 数据类型[,...],FULLTEXT 索引名 (列名));
create table alt191 (id int(9),name char(15),address char(35),sex char(2),fulltext index_text (name,address,sex) );
删除索引
drop index 索引名 on 表名