我有一个数据库,其中我的表当前正在使用中,并且没有定义索引。如果可能的话,我想提高速度。我已经准备好了索引,但是我想知道它是否也需要作为主键?此外,对于表中的旧记录,索引将为null。这是一个问题吗?我想知道最好的方法是什么。
这是当前的表结构(我只计划插入'id‘作为索引)
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发布于 2013-08-28 22:37:33
试着这样做:
CREATE FULLTEXT INDEX `idxtags` ON `table1`(`tags`)如果你愿意,你也可以试试这个:
ALTER TABLE Tablename ADD id Int NOT NULL AUTO_INCREMENT PRIMARY KEY;这将在行上添加唯一索引。
发布于 2013-08-28 22:47:58
对于索引到底是什么,似乎有一种误解。您不需要额外的字段。您可以在表中的一个或多个现有字段上创建索引,如下所示:
alter table xxxx add index idx_user (user);创建此索引不会向表中添加任何字段。取而代之的是,MySQL将在后台创建一个额外的树,以加快查找速度。每当您更改表中的数据时,此树都会自动更新,因此它不是免费的。但是,在通常用于查找表中的行的列上创建索引可能是一个好主意。
您可能还应该阅读有关索引的一般知识:https://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html
https://stackoverflow.com/questions/18490962
复制相似问题