我在MySQL中有一个这样的表,有大量行.
TABLE `Table_1` (
`InternalId` int(10) NOT NULL AUTO_INCREMENT,
`Id` varchar(50) NOT NULL,
`Test_Column` varchar(100) NULL,
`Month` int(2) NOT NULL,
`Year` int(2) NOT NULL,
PRIMARY KEY (`InternalId`),
KEY `IX_Id` (`Id`)
) ENGINE=InnoDB;
我需要定期查询表中月/年已过go 且Test_列不为NULL的行,并使用以下查询对它们执行一些操作:
Select * From Table_1 where Test_Column is NULL AND (Year < @currentYear OR (Year = @currentYear AND Month = @currentMonth))
为这些列创建索引的最佳方法是什么?我是否只需要在所有三列上创建一个索引,即年、月、测试列,以及测试列为空的事实是否值得考虑?