我有一个大表(大约3百万条记录),主要包括以下字段:rowID(int),deviceID(varchar(20)),格式为1536169459(int(10))的UnixTimestamp,具有整数的powerLevel范围介于30到90(smallint(6))之间。

我正在寻找在特定时间范围内(使用UnixTimestamp)针对特定deviceID以及powerLevel高于特定数字的记录。拥有超过300万条记录,需要一段时间。有没有一种方法可以创建为此优化的索引?

最佳答案

在以下位置创建索引:

DeviceId,
PowerLevel,
UnixTimestamp


选择时,您将首先缩小给定设备的记录集,然后将其缩小到仅在正确PowerLevel范围内的那些记录。最后,对于每个PowerLevel,它将通过UnixTimestamp缩小到正确的记录。

关于mysql - 优化大型MySQL表中的索引,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52191237/

10-12 15:07