兩個表:哪個表在MYSQL中速度更快?
CREATE TABLE `htmlcode_1` (
`global_id` int(11) NOT NULL,
`site_id` int(11) NOT NULL,
PRIMARY KEY (`global_id`),
KEY `k_site` (`site_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `htmlcode_2` (
`global_id` int(11) NOT NULL,
`site_id` int(11) NOT NULL,
PRIMARY KEY (`site_id`,`global_id`),
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
其中之一應該是選擇,爲什麼快?
'select * from table where site_id=%s'
你的兩個表格描述了不同的實體。如果'global_id'是你實際的主鍵(它可能是唯一的),不要選擇一個不同的pk--因爲它不再強制這個唯一性。你不應該這樣選擇你的主鍵。在這種情況下,額外的索引將具有相同的效果(以該查詢的速度爲準)。關於速度,比爾給了你答案。 – Solarflare
@Solarflare - 在MySQL中,根據定義,「PRIMARY KEY」是'UNIQUE';關於它沒有「可能獨一無二」。 –
@RickJames我的意思是:'global_id'可能是一個固有的值,它應該是唯一的,它所描述的(否則第一個表是不可能的)。如果evg使用'(site_id,global_id)'作爲pk只是爲了加快查詢速度,它將會失去這個屬性。 – Solarflare