2013-10-09 46 views
1

我用mysql database.I創建有一個註冊table.The表結構就是這樣這是好創建/加入索引鍵對於已經作爲主/唯一鍵

CREATE TABLE IF NOT EXISTS `registration_doctors` 
(
    `id` int(12) NOT NULL AUTO_INCREMENT, 
    `first_name` varchar(50) NOT NULL, 
    `last_name` varchar(50) DEFAULT NULL, 
    `password` varchar(50) NOT NULL, 
    `email` varchar(50) NOT NULL, 

    PRIMARY KEY (`id`), 
    UNIQUE KEY `email` (`email`) 
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

我任何列名已經創建了主鍵和一個唯一的鍵。我知道當我們創建一些列作爲主鍵或唯一鍵時,它也可以作爲索引鍵。我想用電子郵件作爲索引鍵。現在它會好還是不好如果我添加電子郵件列作爲索引。因爲它已經是唯一的key.Please幫助我。

+3

不知道我明白了。但唯一索引是一個索引。不同的是,獨特不會允許重複(很明顯)。所以,如果你有獨特的索引 - 你已經有一個索引,因此,你不需要爲這一列添加新的索引 –

+0

@AlmaDoMundo感謝您的評論。我知道它。但我是新開發人員。因此,我希望得到像你這樣的人的一些建議,以確定。再次感謝。 – ahs

+1

您需要了解真正的索引。這不是你添加的一些神奇的東西,然後它使得東西飛得很快,這是一個數據結構,可以幫助MySQL找到記錄的位置,它的工作方式與您購買的書的索引完全相同 - 它會告訴您哪一頁是哪一頁。 Unique,Primary等都是索引,唯一具有主/唯一索引的是它們只有1個不同的值。正如@AlmaDoMundo所說 - 它已經是一個索引,你不需要另一個索引。 –

回答

3

1.indexes幫助mysql超過你的表更快的搜索,所以指數是好的,但是當你添加所有的表字段作爲索引你在你的表搜索會這麼慢指數應以智能的方式來使用,例如,而不是快速!!!

2.primary key是一種索引,所以當你添加一個字段作爲主鍵時,不需要將它添加爲索引,因爲它也是索引!

我希望能幫到你。

+0

非常感謝。我同意你的意見。你是對的。因此我不會在我的桌子上添加索引鍵。因爲我已經有一個主鍵和一個唯一的鍵。 – ahs

+2

通過主鍵在表中搜索對於mysql來說總是更快更容易,因此,只有當您想要通過另一個字段進行搜索時,才能使該字段成爲索引,否則,您不需要 –

相關問題