次のフィールドを持つ30万行のInno dbテーブル(testと呼ばれる)を使用しています:
id(int), sn(int), ts(timestamp), note(text), error_id(int)
索引はid
、sn
およびts
です。
SELECT ts FROM test LIMIT 0, 100
他のすべてSELECT id FROM test LIMIT 0,100
が0.04秒かかる 場合、平均0.3〜0.35秒かかります。
*
またはを選択した場合のみ、ts
SELECT の終了に時間がかかります。
なぜこれが起こるのか知っていますか?
実際のテーブル:
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