首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >向现有MySQL表添加索引

向现有MySQL表添加索引
EN

Stack Overflow用户
提问于 2013-08-28 22:35:44
回答 2查看 23K关注 0票数 5

我有一个数据库,其中我的表当前正在使用中,并且没有定义索引。如果可能的话,我想提高速度。我已经准备好了索引,但是我想知道它是否也需要作为主键?此外,对于表中的旧记录,索引将为null。这是一个问题吗?我想知道最好的方法是什么。

这是当前的表结构(我只计划插入'id‘作为索引)

代码语言:javascript
运行
复制
Field   Type    Collation   Attributes  Null
user    varchar(255)    utf8_general_ci     No
pass    varchar(255)    utf8_general_ci     No
ts  varchar(255)    utf8_general_ci     No
lat varchar(255)    utf8_general_ci         No
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-28 22:37:33

试着这样做:

代码语言:javascript
运行
复制
CREATE FULLTEXT INDEX `idxtags` ON `table1`(`tags`)

如果你愿意,你也可以试试这个:

代码语言:javascript
运行
复制
ALTER TABLE Tablename ADD id Int NOT NULL AUTO_INCREMENT PRIMARY KEY;

这将在行上添加唯一索引。

票数 2
EN

Stack Overflow用户

发布于 2013-08-28 22:47:58

对于索引到底是什么,似乎有一种误解。您不需要额外的字段。您可以在表中的一个或多个现有字段上创建索引,如下所示:

代码语言:javascript
运行
复制
alter table xxxx add index idx_user (user);

创建此索引不会向表中添加任何字段。取而代之的是,MySQL将在后台创建一个额外的树,以加快查找速度。每当您更改表中的数据时,此树都会自动更新,因此它不是免费的。但是,在通常用于查找表中的行的列上创建索引可能是一个好主意。

您可能还应该阅读有关索引的一般知识:https://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html

票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18490962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档