2017-01-26 2 views
0

Ich habe Datenbank und stellen Sie die Engine zu innodb, Die Frage ist: Warum die Indexgröße ist Null in innodb, während ich die Engine zu Myisam ändern, hat der Index Größe? ... Ich habe Angst, dass Index nicht ausgeführt wird, denn ich habe diese bei der Ausführung MySQLTuner: Abfragen Passen Sie kommen immer Indizes verwendenWarum Indexgröße in innodb ist Null?

Edit: , die zeigen, wird Tabelle erstellen:

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 

und es ist Tabellenstatus: table status

Antwort

0

In MyISAM, jeder Index ist ein separater BTree, die PRIMARY KEY einschließlich.

In InnoDB ist die PRIMARY KEY mit den Daten in der gleichen BTree "geclustert". In der Zwischenzeit ist jeder sekundäre Schlüssel eine separate BTree.

So bedeutet "Index_size = 0" in einer InnoDB Tabelle, dass Sie keine sekundären Schlüssel haben.

Mal sehen SHOW CREATE TABLE und die SELECT - um zu sehen, ob Sie die "besten" Indizes haben.

(Caveat: Diese Antwort bezieht sich nicht unbedingt FULLTEXT und SPATIAL Indizes.)

+0

Hmmm ... ich nicht die 'status' erklären kann. Welche Version von MySQL? –

+0

mysql v: 5.6.34 –

+0

Bitte geben Sie die Ausgabe von 'SELECT COUNT (*) FROM campaigns;' –