正如已经指出的,Oracle11g不会根据以前的经验动态构建索引。在适当的条件下添加一个指数会产生你注意到的数量级的改进,这当然是可能的,而且确实经常发生。
但正如已经指出的,50K(似乎很短?)行与Oracle无关。事实上,Oracle数据库具有大量的智能,可以最有效地扫描没有索引的数据。Oracle RDBMS的每一个新版本都能更好地移动大量数据。我建议您,与MySQL相比,即使没有索引,Oracle也非常接近它的“最佳”时间,这是因为Oracle只是一个更智能的数据库。
然而,Oracle RDBMS确实有许多与您打开的主题区域相关的功能。例如:
10G引入了一个称为自动SQL调优的功能,该功能通过一个名为SQL调优顾问的GUI公开。此功能旨在单独深入分析查询,并包括对可选查询计划进行假设分析的能力。这包括模拟实际不存在的索引。但是,这并不能解释您所看到的任何性能差异,因为该特性需要打开,并且实际上它不构建任何索引,它只建议DBA创建索引等。
11g包括自动统计收集,启用后,将根据这些对象上的活动自动收集数据库对象的统计信息。
因此,Oracle RDBMS正在按照您的建议进行操作,根据自己对工作负载的经验,动态地改变其环境,以提高性能。动态创建索引还不是目前的工作之一。顺便提一句,这是Oracle在私人七年时代暗示的,所以我认为它正在为将来的发布工作。