2013-08-28 112 views
2

我有一個數據庫,其中我的表當前正在使用,沒有定義索引。如果可能的話,我期待增加速度。我已經準備好了索引,但是想知道這是否也需要成爲主鍵?此外,表中的舊記錄的索引將爲空。這是一個問題嗎?我想知道最好的方法是什麼。添加索引到現有的MySQL表

這是當前表stucture(我打算只將「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 
+2

對於索引給你它需要它可能被用來識別行被檢索索引的速度提高。也往往需要建立適當的規範化表格。你能給出一些關於所持有的數據類型和查詢運行類型的指示嗎? –

回答

1

嘗試這樣的: -

CREATE FULLTEXT INDEX `idxtags` ON `table1`(`tags`) 

,如果你願意,你也可以嘗試這個: -

ALTER TABLE Tablename ADD id Int NOT NULL AUTO_INCREMENT PRIMARY KEY; 

這將在行上添加唯一索引。

10

似乎有一個關於索引究竟是什麼的誤解。你不需要額外的字段。您可以在表中這樣的現有油田的一個或多個創建索引:

alter table xxxx add index idx_user (user); 

創建這個索引將不會增加任何字段的表。相反,MySQL會在後臺創建一個額外的樹,以加快查找速度。無論何時更改表中的數據,都會自動更新此樹,因此它不會免費。但是,在您通常用於查找表中的行的列上創建索引可能是一個好主意。

你應該也很可能在一般的閱讀了關於指標:https://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.html

+0

thx的提示! – Bachzen