Bac*_*zen 3 mysql sql indexing
我有一个数据库,我的表当前正在使用,没有定义索引.我希望尽可能提高速度.我已经准备好了索引,但想知道它是否也需要成为主键?此外,对于表中的旧记录,索引将为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
Run Code Online (Sandbox Code Playgroud)
sme*_*sme 13
似乎对指数究竟是什么存在误解.您不需要其他字段.您可以在表中的现有字段上的一个或多个上创建索引,如下所示:
alter table xxxx add index idx_user (user);
Run Code Online (Sandbox Code Playgroud)
创建此索引不会向表中添加任何字段.相反,MySQL将在后台创建一个额外的树,以便更快地进行查找.每当您更改表中的数据时,此树都会自动更新,因此它不是免费提供的.但是,在通常用于查找表中行的列上创建索引可能是个好主意.
您还应该阅读一般的索引:https://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html
尝试这样:-
CREATE FULLTEXT INDEX `idxtags` ON `table1`(`tags`)
Run Code Online (Sandbox Code Playgroud)
如果你愿意,你也可以尝试这个:-
ALTER TABLE Tablename ADD id Int NOT NULL AUTO_INCREMENT PRIMARY KEY;
Run Code Online (Sandbox Code Playgroud)
这将在行上添加唯一索引。
| 归档时间: |
|
| 查看次数: |
16831 次 |
| 最近记录: |