Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.0 (中文) » UltraLite - 数据库管理和参考 » 使用 UltraLite 数据库 » 使用 UltraLite 数据库 » 使用 UltraLite 索引

 

何时使用索引

在以下情况下使用索引:

  • 您想要 UltraLite 维护参照完整性   索引还使 UltraLite 能够对表中的行强制实施唯一性约束。不必为非常类似的数据添加索引。

  • 特定查询的性能对您的应用程序来说是很重要的   如果某个索引提高了查询的性能,并且查询的性能对您的应用程序来说很重要且经常使用,那么,您就希望维护该索引。除非所涉及的表非常小,否则,索引都可以显著提高搜索性能。因此通常建议您在频繁执行数据搜索时使用索引。

  • 存在复杂查询   对于更为复杂的查询(例如,那些具有 JOIN、GROUP BY 和 ORDER BY 子句的查询),使用索引会获得更大的改进—尽管很难确定性能的改进程度如何。因此,请分别在使用和不使用索引这两种情况下测试您的查询,以确定哪个性能更好。

  • UltraLite 表很大   查找行所用的平均时间会随表大小的增加而增加。因此,如果要在一个非常大的表中增强搜索性能,请考虑使用索引。索引可以让 UltraLite 迅速地查找行—但这仅限于被索引的列。否则,UltraLite 必须搜索表中的每一行以查看该行是否与搜索条件相匹配,处理大表时这可能会很费时。

  • UltraLite 客户端应用程序不执行大量的插入、更新或删除操作   由于 UltraLite 维护索引和数据本身,因此,此上下文中的索引会对数据库操作的性能产生负面影响。鉴于此,您应当将索引的使用限定于定期查询的数据(如上面一条中所述)。维护 UltraLite 缺省索引(主键和唯一约束的索引)就足够了。

  • 使用 WHERE 子句和/或 ORDER BY 子句中涉及的列索引。   这些索引可加快对这些子句的评估。特别是,索引有助于优化多列 ORDER BY 子句—但只有当索引中列的放置和 ORDER BY 子句的放置完全相同时才会如此。