CBO优化器的聪明之处了。
在ORACLE
的官方文档有这样的话:
Create
an
index
if
you
frequently
want
to
retrieve
less
than
about
15%
of
the
rows
in
a
large
table
意思就是如果你检索的数据占整个表数据的15%以下的时候建索引。
也就是说一般情况下如果你查询的数据占表数据的15%以下的时候,用索引会比全表扫描效率高。如果超过15%的话可能就是全表扫描的效率更好!当然这个15%也不是固定的,也要根据不同情况来分!
而ORACLE
的CBO优化器会自动根据表的统计数据和你要检索的数据,去分析是用索引的效率更高还是全表扫描的效率更高。
如果一定要用索引的话,那就加个hints吧!MySQL中为时间字段添加索引后,需要重建表才能使索引生效,可以使用ALTER TABLE命令来重建表。此外,如果想更好地提升时间字段的查询效率,还可以尝试使用MySQL的Partition功能来分区表,以加快查询的速度。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)