网站首页 > 文章中心 > 其它

mysql索引怎么添加

作者:小编 更新时间:2023-09-06 11:53:30 浏览量:324人看过

如何创建mysql索引

分几种类型:

①添加PRIMARY KEY(主键索引)

ALTER TABLE +table_name+ ADD PRIMARY KEY ( +column+ )

ALTER TABLE +table_name+ ADD UNIQUE (

+column+

)

ALTER TABLE +table_name+ ADD INDEX index_name ( +column+ )

ALTER TABLE +table_name+ ADD FULLTEXT ( +column+)

mysql之字符串字段添加索引

字符串创建索引方式:

①.、直接创建完整索引,比较占用空间.

倒序存储和hash字段索引都不支持范围查询.倒序存储的字段上创建的所有是按照倒序字符串的方式排序的.hash字段的方式也只能支持等值查询.

mysql alter table SUser add index index1(email); :包含了每个记录的整个字符串

全字段索引操作流程

使用的是 index1(即 email 整个字符串的索引结构),执行顺序是这样的:

前缀字段索引操作流程

倒序查询和hash字段的区别

它们的区别,主要体现在以下三个方面:

MySQL如何为表字段添加索引

①添加PRIMARY KEY(主键索引):

Mysql大表加索引

select (*) from tb_name where create_time xxx;

最终得知是因为这个表数据行数已经超过 一千万了,然后create_time字段又没有索引 .

那解决办法肯定是加索引喽.

但是这个表是一直在线上运行,很重要和业务部分.如果给千万级的大表在线加索引 ,肯定会卡死.

然后就搜罗了一大筐解决方案,比如 在线无锁加索引使用

ALTER TABLE tbl_name ADD PRIMARY (column), ALGORITHM=INPLACE, LOCK=NONE;

最后在 <<高性能Mysql>>一书中看到,可在通过 "影子拷贝"来解决,

就是 先创建一张和源表无关的新表,然后通过重命名和删表操作交换两张表;

场景:在给一张有几万条记录的表添加索引时,进度非常慢,导致其它查询无法进行

处理方式:

使用Navicat的命令行模式,执行以下命令:

show processlist;

这时会看到有哪些线程正在执行,也可以查看锁表的线程.你会发现alter table * add key ****那个线程状态是Waiting for table metadata lock,后面有个这个表的所有操作都是这个状态,很明显是这条加索引的语句把表给锁了.

查看线程ID,执行

kill 线程ID

这样被锁住的表就能立即被使用了.

由此得出一个结论,当一张表数据量很大时,不要轻易添加索引,会导致表被锁死!如果非要添加,那么应该先把数据表进行备份,然后进行空表添加索引.

只能通过ALTER TABLE不能create index

参数说明:

MYSQL创建表的时候如何加"索引"?

mysql创建索引的三种办法

第一段:CREATE INDEX方法

CREATE INDEX 索引名 ON 表名 (列名 [长度] [ ASC | DESC])

限制:只能增加普通索引INDEX和UNIQUE INDEX索引这两种;不能创建PRIMARY KEY索引

第二段:ALTER TABLE方法

ALTER TABLE 表名 ADD INDEX [索引名] (列名,...)

ALTER TABLE 表名 ADD UNIQUE [ INDEX | KEY] [索引名] (列名,...)

ALTER TABLE 表名 ADD PRIMARY KEY (列名,...)

ALTER TABLE 表名 ADD FOREIGN KEY [索引名] (列名,...)

第三段:CREATE TABLE时候指定

创建一般索引

CREATE TABLE tb_stu_info

(

id INT NOT NULL,

dept_id INT DEFAULT NULL,

age INT DEFAULT NULL,

height INT DEFAULT NULL,

INDEX(height)

);

创建唯一索引

UNIQUE INDEX(height)

创建主键(虽然ALTER TABLE也能创建,但主键一般都在创表时建立)

CREATE TABLE mytable(

ID INT NOT NULL,

PRIMARY KEY(ID)

以上就是土嘎嘎小编为大家整理的mysql索引怎么添加相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章