mysql 创建索引的方式合集(文末就惊喜哦~)

​MySQL创建索引的方式包括:

  1. 在创建表时添加索引:在创建表时使用CREATE TABLE语句,可以通过添加约束条件来创建索引。

  2. ALTER TABLE命令添加索引:在已有表中使用ALTER TABLE语句,可以添加或删除索引。

  3. 使用CREATE INDEX命令创建索引:这是另外一个创建索引的方法,可以在已有表中使用CREATE INDEX语句。

  4. 使用CREATE UNIQUE INDEX或CREATE FULLTEXT INDEX命令创建唯一性索引或全文索引:这些命令用于创建特殊类型的索引。

  5. 在phpMyAdmin等工具中通过图形界面添加索引:一些MySQL客户端应用程序提供了图形界面来添加索引。

更多惊喜内容

MySQL有哪些索引类型:

1、普通索引

普通索引是最基本的索引,它没有任何限制,值可以为空;仅加速查询。可以通过以下几种方式来创建或删除:

1)、直接创建索引

CREATE INDEX index_name ON table(column(length))

2)、修改表结构的方式添加索引

ALTER TABLE table_name ADD INDEX index_name ON (column(length))

3)、删除索引

DROP INDEX index_name ON table

2、唯一索引

唯一索引与普通索引类似,不同的就是:索引列的值必须唯一,但允许有空值。如果是组合索引,则列值的组合必须唯一。简单来说:唯一索引是加速查询 + 列值唯一(可以有null)。以通过以下几种方式来创建:

1)、创建唯一索引

CREATE UNIQUE INDEX indexName ON table(column(length))

2)、修改表结构

ALTER TABLE table_name ADD UNIQUE indexName ON (column(length))

3、主键索引

主键索引是一种特殊的唯一索引,一个表只能有一个主键,不允许有空值。简单来说:主键索引是加速查询 + 列值唯一(不可以有null)+ 表中只有一个。

一般是在建表的时候同时创建主键索引:

CREATE TABLE mytable( ID INT NOT NULL, username VARCHAR(16) NOT NULL, PRIMARY KEY(ID) );

当然也可以用 ALTER 命令。记住:一个表只能有一个主键。

4、组合索引

组合索引指在多个字段上创建的索引,只有在查询条件中使用了创建索引时的第一个字段,索引才会被使用。使用组合索引时遵循最左前缀集合。

可以说:组合索引是多列值组成的一个索引,专门用于组合搜索,其效率大于索引合并。

ALTER TABLE table ADD INDEX name_city_age (name,city,age);

5、全文索引

全文索引主要用来查找文本中的关键字,而不是直接与索引中的值相比较。fulltext索引跟其它索引大不相同,它更像是一个搜索引擎,而不是简单的where语句的参数匹配。fulltext索引配合match against操作使用,而不是一般的where语句加like。它可以在create table,alter table ,create index使用,不过目前只有char、varchar,text 列上可以创建全文索引。值得一提的是,在数据量较大时候,现将数据放入一个没有全局索引的表中,然后再用CREATE index创建fulltext索引,要比先为一张表建立fulltext然后再将数据写入的速度快很多。

1)、创建表的适合添加全文索引

CREATE TABLE table ( id int(11) NOT NULL AUTO_INCREMENT , title char(255) CHARACTER NOT NULL , content text CHARACTER NULL , time int(10) NULL DEFAULT NULL , PRIMARY KEY (id), FULLTEXT (content) );

2)、修改表结构添加全文索引

ALTER TABLE article ADD FULLTEXT index_content(content)

3)、直接创建索引

CREATE FULLTEXT INDEX index_content ON article(content)

简单来说:全文索引是对文本的内容进行分词,进行搜索。

惊喜放送:

最后送大家一份 JetBrains IDEA 破解教程和干货,快拿去用吧:

百度网盘链接:pan.baidu.com/s/1jxvnKgTs...

提取码:2cg8

相关推荐
kngines2 分钟前
【实战ES】实战 Elasticsearch:快速上手与深度实践-7.1.2Flink CDC同步MySQL数据
大数据·mysql·elasticsearch·搜索引擎
罗狮粉 996 分钟前
Mysql主从复制和Mysql高可用以及负载均衡配置
android·mysql·负载均衡
Z_zz_Z___24 分钟前
MySQL创建数据库和表,插入四大名著中的人物
数据库·mysql
shyの同学3 小时前
分布式ID生成方案:数据库号段、Redis与第三方开源实现
redis·分布式·mysql·id
cg50176 小时前
MySQL数据库复杂的增删改查操作
数据库·mysql
夏炎正好眠11 小时前
mysql练习
数据库·mysql
驜鸈13 小时前
MySQL 的EXPLAIN 计划 type 字段详细说明
android·数据库·mysql
嗨起飞了15 小时前
MySQL入门手册
数据库·mysql
程序员的世界你不懂16 小时前
Mysql配置文件My.cnf(my.ini)配置参数说明
数据库·mysql·百度·新浪微博
ChinaRainbowSea16 小时前
MySQL 索引的数据结构(详细说明)
java·数据结构·数据库·后端·mysql