现在表中是两千万+的数据
不做优化直接查询,可以看到耗时21秒,嗯。。。这么老半年,电脑都得砸掉了。
当然了在这个查询的时候我这个字段是没有索引的,因为这个表的索引要给时间字段。
下面是优化过后的查询,可以看到,这个效率已经有很好的提升了。
原来的表结构中有四到五个索引,可以明显发现,里面有的索引已经失效。考虑到这个数据库的结构,我们去除了这个表中的多数索引,仅保留主键和时间字段的索引。其他字段的索引都可以间接通过主键来操作。在这里我们借用辅助表,辅助表中只有连个字段。(ID,索引字段)。如上图Scale_Small 的表字段只有Scale表中的(ID,SmallCode);其中,ID为主键,SmallCode
设置一个索引;在做查询的时候,通过Scale_Small表获取到,Scale表的id,通过聚集索引去做查询,这个效率懂的都懂。
当然了,这样做也是有代价的,我们的辅助表需要跟随主表数据做出变动。这里我们就需要用到触发器。