2011-08-05 42 views
0

我對mysql有一些疑問。我使用phpmyadmin作爲xampp包的一部分。PHPMyAdmin中的索引和關鍵問題

所以:

  1. 我定義的字段我的表被打上標記爲指標。過了一段時間,我改變了字段的名稱,但注意到在鍵名下面留下了舊的名字。這是爲什麼?它會帶來問題嗎?

  2. 我也是在一個表中定義多個索引時,他們莫名其妙地聚在一起下一個關鍵發現,但只有字段顯示一個在另一個之上。

我已經建立了一個數據庫,但做了這些改變後,我不想在錯誤的基礎設施上建造。我應該重建嗎?

回答

0

鍵名基本上都是參考,有哪些字段,它們實際上是索引沒有影響。這些名稱使您在使用它們時可以更輕鬆地引用密鑰(添加/修改/刪除密鑰),但除此之外,它完全是信息性的。如果你沒有提供密鑰名稱,MySQL將自動分配一個密鑰名稱,它通常基於密鑰中的第一個字段。

不確定你對索引的含義。您必須顯示您的SQL,但是:

CREATE TABLE ... 
... 
INDEX indexA (fieldA, fieldB), 
INDEX indexB (fieldC, fieldD), 
INDEX indexC (fieldE) 

將創建3個索引,其中兩個索引各包含兩個字段。在()內指定的任何字段名稱都將成爲該索引的一部分。

+0

什麼是一個指數的兩個字段的含義?是否像將兩個字段值合併爲一個索引方式? – Ted

+0

您可以索引任何您想要的字段組合。一般來說,如果組合字段總是在where/join子句中一起使用,那麼你會做一個多字段索引。維護一個多字段索引比多個單字段索引稍微便宜。 –

+0

好的。我想我需要分化。每個字段一個索引。爲什麼phpmyadmin會一直顯示它們? – Ted

0

我不認爲你應該重建。

回覆您的第一個問題:你的 看到的是什麼索引名沒有變化,但它仍指向重命名

重新您的第二個問題是場: 不知道你的意思是「濟濟一堂下一個關鍵「,如果它仍然是一個你可以在這裏發佈屏幕截圖的問題,它可能是一個myphp用戶界面。

一般來說,你會希望避免在表上創建大量的索引CUS它將使插入和刪除慢。 刪除索引是一個沒有破壞性的操作,所以你可以嘗試一切你想要爲你的用例找到最高級的模式。 你也可能想,如果尋找到一些所謂的正常化您關心PREF浪漫

+0

現在我不在我的編輯範圍內,但是你是否在說我可以識別字段名稱,但鍵名與任何字段無關? – Ted

+0

在某些表中,鍵名是單個的,但似乎是引用兩個字段(一個在另一個之上),引用兩個字段的單個鍵名和每個字段的單個鍵名之間必須有區別。 – Ted