为什么 innodb 中的索引大小为零?

Why index size in innodb is zero?

我有数据库并将引擎设置为innodb,问题是: 为什么 innodb 中的索引大小为零,而我将引擎更改为 myisam 时,索引有大小? ... 恐怕索引不是 运行,因为我在 运行 mysqltuner 时有这个: 调整您的连接查询以始终利用索引

编辑: 即 show create table:

    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

并且是 table 状态: table status

在 MyISAM 中,每个索引都是一个单独的 BTree,包括 PRIMARY KEY

在InnoDB中,PRIMARY KEY与"clustered"的数据在同一个BTree中。同时,每个 secondary 键都是一个单独的 BTree。

因此,InnoDB table 上的 "Index_size=0" 意味着您没有 secondary 键。

让我们看看 SHOW CREATE TABLESELECT -- 看看您是否有 'best' 个索引。

(注意:此答案不一定涵盖 FULLTEXTSPATIAL 索引。)