搜索

6.4. 使用索引来提升数据库性能

download PDF
根据数据库的大小,客户端应用程序执行的搜索可以是时间和资源密集型。为了帮助缓解这个问题,请使用索引来提高搜索性能。
索引是存储在目录数据库中的文件。为目录服务中的每个数据库维护单独的索引文件。每个文件根据其索引的属性命名。特定属性的索引文件可以包含多个类型的索引,因此可以为每个属性维护多种类型的索引。例如,名为 cn.db 的文件包含通用 name 属性的所有索引。
根据使用目录服务的应用程序类型,使用不同类型的索引。不同的应用可能会经常搜索特定属性,或者可能会以不同语言搜索目录,或者可能需要特定格式的数据。

6.4.1. 目录索引类型概述

目录服务器支持以下索引类型:
  • presence index - 列出具有特定属性的条目,如 uid
  • equality index - 列出包含特定属性值的条目,如 cn=Babs Jensen
  • 大约索引 - 允许近似(或"类似于"的")搜索。例如,条目可能包含 cn=Babs L. Jensen 的属性值。大约搜索将返回针对 cn~=Babs Jensencn~=Babscn~=Jensen 进行搜索的值。
    注意
    大约索引要求使用 ASCII 字符以英文写入名称。
  • substring index - 允许搜索条目内的子字符串。例如,搜索 cncategoriesderson 将匹配包含此字符串的通用名称(如 Bill Anderson、Norma Henderson 和 netobserv Sanderson)。
  • 国际索引 - 提高了搜索在国际目录中信息的性能。通过将区域设置(internationalization OID)与要索引的属性关联,将索引配置为应用匹配的规则。
  • 浏览索引或虚拟列表视图(VLV)索引 - 提高了 web 控制台中条目的显示性能。可以在目录树中的任何分支中创建 浏览索引,以提高显示性能。

6.4.2. 评估索引的成本

索引提高了目录数据库中的搜索性能,但成本涉及到:
  • 索引会增加修改条目所需的时间。
    维护的索引越长,目录服务需要更新数据库所需的时间。
  • 索引文件使用磁盘空间。
    使用更多属性进行索引,会创建更多文件。如果包含长字符串的属性有大约和子字符串的索引,则这些文件可能会快速增长。
  • 索引文件使用内存。
    要更有效地运行,目录服务会将尽可能多的索引文件放在内存中。根据数据库缓存大小,索引文件使用池中可用的内存。大量索引文件需要更大的数据库缓存。
  • 创建索引文件需要一些时间。
    虽然索引文件在搜索过程中节省时间,但维护不必要的索引会浪费时间。请确保仅使用目录服务维护客户端应用程序所需的文件。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.