2017-01-11 47 views
0

我有以下流程表:加強表MySQL的性能

CREATE TABLE `type_interests` (
    `id` int(11) NOT NULL, 
    `interest_id` int(11) NOT NULL, 
    `type_id` int(11) NOT NULL, 
    `type` varchar(64) NOT NULL, 
    `status` varchar(64) NOT NULL, 
    `created_date` datetime NOT NULL, 
    `last_update` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, 
    `notes` varchar(64) NOT NULL 
) ENGINE=InnoDB DEFAULT CHARSET=utf8; 

ALTER TABLE `type_interests` 
    ADD PRIMARY KEY (`id`), 
    ADD KEY `interest_id` (`interest_id`,`type_id`), 
    ADD KEY `interest_id_2` (`interest_id`); 


ALTER TABLE `type_interests` 
    MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=31415; 

ALTER TABLE `type_interests` 
    ADD CONSTRAINT `type_interests_ibfk_1` FOREIGN KEY (`interest_id`) REFERENCES `interests` (`id`); 

而且我只有約30000數據庫中的記錄,但其使用該表會消耗很多時間所有的查詢,是一家集設計問題?請注意,type_id鏈接到多個表。

+0

你能告訴我們查詢/查詢這需要很長時間?關於我的頭頂,也許你沒有使用任何指數。 –

+0

我認爲SHOW CREATE TABLE會更優雅地顯示錶 – Strawberry

+0

我添加了一個索引('type','type_id')並且它解決了問題 –

回答