2017-01-11 10 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`); 

を、私は唯一の約30,000のデータベース内のレコードが、この表は、時間の多くを消費している使用するすべてのクエリを持って、それがデザインです問題? type_idは複数のテーブルにリンクされていることに注意してください。

+0

あなたは私たちに、クエリ/クエリを表示することができますそれは長い時間がかかりますか?私の頭の上から、おそらくあなたはどんな指標も使用していません。 –

+0

私はSHOW CREATE TABLEがテーブルをよりエレガントに表示すると思う。 – Strawberry

+0

私はインデックス( 'タイプ'、 'タイプID')を追加して問題を解決しました –

答えて

1

あなたはここに適切にインデックスあなたのテーブルを、より多くの情報べきである:http://dev.mysql.com/doc/refman/5.7/en/mysql-indexes.htmlそれはあなたのサーバーのaswellに依存

、することができます「調整」このスクリプトを使用してのMySQL:https://www.howtoforge.com/tuning-mysql-performance-with-mysqltuner

+0

私はインデックス( 'タイプ'、 'タイプID')を追加し、 –

+0

私は助けてくれると嬉しいです! –

関連する問題