为什么 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 TABLE
和 SELECT
-- 看看您是否有 'best' 个索引。
(注意:此答案不一定涵盖 FULLTEXT
和 SPATIAL
索引。)
我有数据库并将引擎设置为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 TABLE
和 SELECT
-- 看看您是否有 'best' 个索引。
(注意:此答案不一定涵盖 FULLTEXT
和 SPATIAL
索引。)