0

我正在使用具有 300k 行的 Inno db 表(称为 test),其中包含以下字段:

id(int), sn(int), ts(timestamp), note(text), error_id(int)

索引是id和。snts

SELECT ts FROM test LIMIT 0, 100平均需要 0.3-0.35 秒,
而其他一切都SELECT id FROM test LIMIT 0,100需要 0.04 秒。

只有在选择*或选择ts时,选择完成需要大量时间才能完成。
你知道为什么会发生这种情况吗(通过 ts 执行 SELECT 的时间比其他时间多 10 倍?)

真实表:

CREATE TABLE `production_list_log` (<br/>
  `id` int(11) NOT NULL AUTO_INCREMENT,<br/>
  `sn` int(11) NOT NULL,<br/>
  `ts` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT 'ts - timestamp when ordercode arrived to this station\n',<br/>
  `note` text COLLATE utf8_slovenian_ci,<br/>
  `error_id` int(11) DEFAULT NULL COMMENT,<br/>
  PRIMARY KEY (`id`),<br/>
  KEY `fk_change_product_id` (`product_id`),<br/>
  KEY `sn_ts_added_kalup` (`sn`,`ts`) USING BTREE,<br/>
  CONSTRAINT `fk_change_product_id` FOREIGN KEY (`product_id`) REFERENCES `products` (`id`) ON UPDATE CASCADE<br/>
) ENGINE=InnoDB AUTO_INCREMENT=297567 DEFAULT CHARSET=utf8
4

0 回答 0