-
2021-01-25 12:23:22
1.PRIMARY KEY(主键索引)
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.UNIQUE(唯一索引)
mysql>ALTER TABLE `table_name` ADD UNIQUE (`column` )
3.INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.FULLTEXT(全文索引)
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column` )
5.多列索引
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
更多相关内容 -
mysql添加索引
2021-11-15 02:28:421.添加PRIMARY KEY(主键索引) ALTER TABLE `table_name` ADD PRIMARY KEY (`column`); 2.添加UNIQUE(唯一索引) ALTER TABLE `table_name` ADD UNIQUE (`column`); 3.添加INDEX(普通索引) ALTER TABLE `...PRIMARY, INDEX, UNIQUE 这3种是一类
1.添加PRIMARY KEY(主键索引) 就是 唯一 且 不能为空
ALTER TABLE `table_name` ADD PRIMARY KEY (`column`);
2.添加UNIQUE(唯一索引) 不允许有重复
ALTER TABLE `table_name` ADD UNIQUE (`column`);
3.添加INDEX(普通索引)
ALTER TABLE `table_name` ADD INDEX index_name (`column`);
4.添加FULLTEXT(全文索引) 用于在一篇文章中,检索文本信息的
ALTER TABLE `table_name` ADD FULLTEXT (`column`);
5.添加多列索引 ,联合索引
ALTER TABLE `table_name` ADD INDEX index_name (`column1`,`column2`,`column3`);
查询sql是否用到了索引以及那个索引,sql前面加explain
explain SELECT * FROM test_a WHERE NAME ='张三';
可以发现用到了name索引 .
需要注意的是mysql在使用like查询的时候只有使用后面的%时,才会使用到索引
简单说明我们平时该怎么建索引,举个例子
我们有一张user表,有下列字段:
id INT
姓名 VARCHAR(10)
身份证号码 VARCHAR(18)
电话 VARCHAR(10)
住址 VARCHAR(50)
备注信息 TEXT建索引的思路:
那么这个id,作为主键,使用 PRIMARY
姓名 如果要建索引的话,因为姓名会重复,那么就是普通的 INDEX
身份证号码 如果要建索引的话,那么可以选择 UNIQUE (唯一的,不允许重复)
备注信息 , 如果需要建索引的话,可以选择 FULLTEXT,全文搜索。不过 FULLTEXT 用于搜索很长一篇文章的时候,效果最好。
用在比较短的文本,如果就一两行字的,普通的 INDEX 也可以,看实际情况 -
mysql 添加索引 mysql 如何创建索引
2020-12-15 18:23:121.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引) mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 3.添加INDEX(普通索引) ... -
MySQL添加索引的五种方法
2022-04-27 10:51:52MySQL添加索引的五种方法 索引(Index)是帮助MySQL高效获取数据的数据结构。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。 数据库查询是数据库的最主要功能之一。我们都希望...索引(Index)是帮助MySQL高效获取数据的数据结构。MySQL索引的建立对于MySQL的高效运行是很重要的,索引可以大大提高MySQL的检索速度。
数据库查询是数据库的最主要功能之一。我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计者会从查询算法的角度进行优化。最基本的查询算法当然是顺序查找(linear search),这种复杂度为O(n)的算法在数据量很大时显然是糟糕的,好在计算机科学的发展提供了很多更优秀的查找算法,例如二分查找(binary search)、二叉树查找(binary tree search)等。如果稍微分析一下会发现,每种查找算法都只能应用于特定的数据结构之上,例如二分查找要求被检索数据有序,而二叉树查找只能应用于二叉查找树上,但是数据本身的组织结构不可能完全满足各种数据结构(例如,理论上不可能同时将两列都按顺序进行组织),所以,在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查找算法。这种数据结构,就是索引。
1.添加primary key(主键索引)
alter table 表名 add primary key(列名);2.添加unique(唯一索引)
alter table 表名 add unique(列名);3.添加index(普通索引)
alter table 表名 add index 索引名(index_name) (列名);4.添加fulltext(全文索引)
alter table 表名 add fulltext (列名);5.添加多列索引
alter table 表名 add index 索引名(index_name) (列名1,列名2.......);当不再需要索引时,可以使用 DROP INDEX 语句 或 ALTER TABLE 语句来对索引进行删除。
1.使用 DROP INDEX 语句
语法格式:
DROP INDEX <索引名> ON <表名>语法说明如下:
<索引名>:要删除的索引名。
<表名>:指定该索引所在的表名。2.使用 ALTER TABLE 语句
根据 ALTER TABLE 语句的语法可知,该语句也可以用于删除索引。具体使用方法是将 ALTER TABLE 语句的语法中部分指定为以下子句中的某一项。
DROP PRIMARY KEY:表示删除表中的主键。一个表只有一个主键,主键也是一个索引。
DROP INDEX index_name:表示删除名称为 index_name 的索引。
DROP FOREIGN KEY fk_symbol:表示删除外键。
注意:如果删除的列是索引的组成部分,那么在删除该列时,也会将该列从索引中删除;如果组成索引的所有列都被删除,那么整个索引将被删除。删除索引
【实例 1】删除表 tb_stu_info 中的索引,输入的 SQL 语句和执行结果如下所示。
mysql> DROP INDEX height
-> ON tb_stu_info;
Query OK, 0 rows affected (0.27 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> SHOW CREATE TABLE tb_stu_info\G
*************************** 1. row ***************************
Table: tb_stu_info
Create Table: CREATE TABLE `tb_stu_info` (
`id` int(11) NOT NULL,
`name` char(45) DEFAULT NULL,
`dept_id` int(11) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`height` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
1 row in set (0.00 sec)【实例 2】删除表 tb_stu_info2 中名称为 id 的索引,输入的 SQL 语句和执行结果如下所示。
mysql> ALTER TABLE tb_stu_info2
-> DROP INDEX height;
Query OK, 0 rows affected (0.13 sec)
Records: 0 Duplicates: 0 Warnings: 0
mysql> SHOW CREATE TABLE tb_stu_info2\G
*************************** 1. row ***************************
Table: tb_stu_info2
Create Table: CREATE TABLE `tb_stu_info2` (
`id` int(11) NOT NULL,
`name` char(45) DEFAULT NULL,
`dept_id` int(11) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`height` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=gb2312
1 row in set (0.00 sec) -
mysql添加索引命令
2021-02-03 05:56:371.PRIMARYKEY(主键索引)mysql>ALTERTABLE`table_name`ADDPRIMARYKEY (`column`)2.UNIQUE(唯一索引)mysql>ALTERTABLE`table_name`ADDUNIQUE (`column` )3.INDEX(普通索引)mysql>ALTERTABLE`...1.PRIMARY KEY(主键索引)
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
2.UNIQUE(唯一索引)
mysql>ALTER TABLE `table_name` ADD UNIQUE (
`column` )
3.INDEX(普通索引)
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column` )
4.FULLTEXT(全文索引)
mysql>ALTER TABLE `table_name` ADD FULLTEXT ( `column` )
5.多列索引
mysql>ALTER TABLE `table_name` ADD INDEX index_name ( `column1`, `column2`, `column3` )
mysql添加索引命令
标签:clear 索引 key 全文索引 archive blog 多列 column 命令
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:http://www.cnblogs.com/zhqBlog/p/6002720.html
-
Mysql添加索引
2018-03-08 14:40:081.此处添加的索引为一般索引,btree方式,添加成功后如下图所示:2.添加的sql语句如下所示:ALTER TABLE pt_info_table ADD INDEX processedId (processedId); ALTER TABLE pt_info_table ADD INDEX depatmentName ... -
MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结
2020-12-16 14:28:16本文实例讲述了MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法。分享给大家供大家参考,具体如下: 建表: DROP TABLE IF EXISTS bulletin; CREATE TABLE bulletin( id INT NOT NULL PRIMARY KEY AUTO... -
mysql添加索引,查询反而变慢
2021-01-19 08:52:58依照楼主的数据,我也造了400万数据:mysql&...id1id211111111112222222222111111111122222222221111111111id1创建索引执行确实是id2谓词条件比较快:mysql> select * from index_test where id1=11111;2097152 ... -
MySQL添加索引导致表死锁问题
2022-04-01 15:39:35MySQL有三种锁的级别:页级、表级、行级。 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发... -
记录一次MySQL添加索引导致线上锁表的问题
2021-07-06 17:40:582.出现慢查询之后急忙在用户表添加索引导致锁表,线上崩溃10多分钟 解释 Mysql在5.6版本之前,直接修改表结构的过程中会锁表,具体的操作步骤如下: (1)首先创建新的临时表,复制原表结构,并新增新字段 (2)... -
mysql添加索引语句
2019-04-10 10:38:301.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引) mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 3.添加INDEX(普通索引) ... -
mysql添加索引导致表锁死
2021-08-13 17:12:35场景:在给一张有几万条记录的表添加索引时,进度非常慢,导致其它查询无法进行 处理方式: 使用Navicat的命令行模式,执行以下命令: show processlist; 这时会看到有哪些线程正在执行,也可以查看锁表的线程... -
MySQL 添加索引,删除索引及其用法
2019-04-18 10:34:39一.索引的作用 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,遇到最多的,也是最容易出... 在数据量和访问量不大的情况下,mysql访问是非常快的,是否加索引对访问影响... -
MySQL添加索引
2015-09-17 11:37:411.添加PRIMARY KEY(主键索引) mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` ) 2.添加UNIQUE(唯一索引) mysql>ALTER TABLE `table_name` ADD UNIQUE ( `column` ) 3.添加INDEX... -
Mysql添加索引(存储过程,可以重复执行)
2019-08-22 17:48:07所以就产生了需要先判断索引是否存在,再做添加索引或者删除索引的操作(若索引不存在,删除索引会报错) 这时候单独sql已经无法完成这个要求了(添加和删除索引的语句不支持IF EXISTS) 所以需要存储过程出马,这么... -
MySql添加索引的五种方法
2021-07-09 09:23:581.添加primary key(主键索引) alter table 表名称 add primary key(列名); 2.添加unique(唯一索引) alter table 表名称 add unique(列名); 3.添加index(普通索引) alter table 表名称 add index 索引名... -
MySQL修改表一次添加多个列(字段)和索引的方法
2020-09-09 21:25:34下面小编就为大家带来一篇MySQL修改表一次添加多个列(字段)和索引的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
mysql如何添加索引
2021-01-19 04:23:21mysql添加索引的方法:可以通过【create table】语句来添加,如【CONSTRAINT PRIMARY KEY | INDEX [] [] 】,表示创建一般索引。在mysql中可以在创建表(CREATE TABLE)的同时创建索引;也可以在创建表后创建索引,... -
mysql5.6.19下子查询为什么无法使用索引
2020-09-10 13:27:28主要介绍了mysql5.6.19下子查询为什么无法使用索引,需要的朋友可以参考下 -
mysql怎么添加索引
2021-02-08 09:03:52在mysql中可以通过使用alter table这个SQL语句来为表中的字段添加索引。1、添加PRIMARY KEY(主键索引)mysql>ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )2、添加UNIQUE(唯一索引)mysql>ALTER TABLE...