2017-01-26 5 views
0

私はデータベースを持っていて、エンジンをinnodbに設定しています。質問は: なぜエンジンがmyisamに変更されても、インデックスサイズがinnodbでゼロになっています。 ... 私はこの実行mysqltuner持っているので、私は、インデックスが実行されていないことを怖い:番組表を作成され :なぜinnodbのインデックスサイズがゼロですか?

CREATE TABLE `campaigns` (
    `id` int(11) NOT NULL AUTO_INCREMENT, 
    `user_id` int(11) NOT NULL, 
    `name` varchar(255) NOT NULL, 
    `description` mediumtext NOT NULL, 
    `start_date` datetime NOT NULL, 
    `end_date` datetime NOT NULL, 
    `fcategory` int(11) DEFAULT NULL, 
    `scategory` int(11) DEFAULT NULL, 
    `imp_per_day` int(11) DEFAULT NULL, 
    `imp_in_today` int(11) NOT NULL, 
    `ad_serving_pace` tinyint(1) DEFAULT NULL COMMENT '(1,2) = (EVEN, FAST)', 
    `target_platform` tinyint(1) NOT NULL COMMENT '(1,2) = (Android, iOS)', 
    `language` int(11) NOT NULL, 
    `status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '(1,2,3,4) = (running, paused, completed, deleted)', 
    `created_at` datetime NOT NULL, 
    `updated_at` datetime NOT NULL, 
    `deleted_at` datetime NOT NULL, 
    PRIMARY KEY (`id`), 
    KEY `user_id` (`user_id`) 
) ENGINE=InnoDB AUTO_INCREMENT=39 DEFAULT CHARSET=utf8 
を常にインデックスに

編集を利用するために、あなたの参加クエリを調整します

とそれはテーブルの状態です:MyISAMテーブルで table status

答えて

0

、すべてのインデックスがPRIMARY KEYを含む別のB木、です。

InnoDBでは、PRIMARY KEYは同じBTreeのデータで「クラスタ化」されています。一方、それぞれのセカンダリは別です。

InnoDBテーブルの "Index_size = 0"は、キーがないことを意味します。

SHOW CREATE TABLESELECTを参照して、「ベスト」インデックスがあるかどうかを確認してください。

(警告:この答えは必ずしもFULLTEXTSPATIALインデックスをカバーしていません。)

+0

は、うーん...私は 'STATUS'を説明することはできません。どのバージョンのMySQL? –

+0

mysql v:5.6.34 –

+0

SELECT COUNT(*)FROMキャンペーンの出力を提供してください。 –

関連する問題