當創建包含我的數據庫結構的一個mysql轉儲,其中一個表顯示以下內容:主鍵與鍵
CREATE TABLE `completedTransactions` (
`paymentId` int(10) unsigned NOT NULL,
`timestamp` int(15) unsigned NOT NULL,
`actionTaken` varchar(25) NOT NULL,
`response` varchar(255) NOT NULL,
`responseCode` int(5) NOT NULL,
PRIMARY KEY (`paymentId`,`timestamp`),
KEY `paymentId` (`paymentId`),
主鍵是我所期待的,但我不能確定什麼最後一行是關於?
KEY `paymentId` (`paymentId`),
這與索引有關嗎?
我想知道爲什麼在這種情況下,在paymentId上創建了一個額外的索引,因爲主鍵也應該是索引。 因此,imho,額外的索引(鍵)已過時。 – 2010-02-04 11:41:27
@Frederik:主鍵是一個複合鍵,因此它的索引將以此爲基礎。當僅根據'paymentId'進行搜索時,該索引可能沒有用處。 – 2010-02-04 11:44:46
@Frederik Gheysels:由於'paymentId'和'timestamp'都屬於主鍵,所以在兩個字段上都會創建一個索引。所以可以爲'paymentId'創建一個額外的索引。 – 2010-02-04 11:45:12