《Linux/UNIX OpenLDAP实战指南》——2.8 OpenLDAP索引

简介: 本节书摘来自异步社区《Linux/UNIX OpenLDAP实战指南》一书中的第2章,第2.8节,作者:郭大勇著,更多章节内容可以访问云栖社区“异步社区”公众号查看

本节书摘来自异步社区《Linux/UNIX OpenLDAP实战指南》一书中的第2章,第2.8节,作者:郭大勇著,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.8 OpenLDAP索引

2.8.1 索引介绍
OpenLDAP索引(index)可以提高用户对OpenLDAP目录树查询的速度,减轻OpenLDAP服务器的压力,提高性能。那么如何创建OpenLDAP 索引呢?

可通过ldapmodify命令完成索引的创建和修改。下面通过为olcDatabase={2}hdb数据库文件创建一个“sn pres,eq,sub”索引来进行介绍。

2.8.2 创建索引
要创建索引具体步骤如下。

1)通过ldapsearch命令查看当前olcDatabase={2}hdb有哪些索引。

[root@mldap01 cn=config]# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config  
                     '(olcDatabase={2}bdb)' olcDbIndex
dn: olcDatabase={2}bdb,cn=config
olcDbIndex: objectClass pres,eq
olcDbIndex: cn pres,eq,sub
olcDbIndex: uid pres,eq,sub
olcDbIndex: uidNumber pres,eq
olcDbIndex: gidNumber pres,eq
olcDbIndex: loginShell pres,eq
olcDbIndex: ou pres,eq,sub
olcDbIndex: mail pres,eq,sub
olcDbIndex: givenName pres,eq,sub
olcDbIndex: memberUid pres,eq,sub
olcDbIndex: nisMapName pres,eq,sub
olcDbIndex: nisMapEntry pres,eq,sub

上述结果显示当前数据库文件没有关于“sn pres,eq,sub”索引的信息。

2)创建一个ldif文件,用于存放索引命令。

[root@mldap01 cn=config]# cat >> hdb-index.ldif << EOF
dn: olcDatabase={2}bdb,cn=config
changetype: modify
add: olcDbIndex
olcDbIndex: sn pres,eq,sub
EOF

3)通过ldapmodify命令创建olcDatabase={2}hdb数据库相关索引条目。

[root@mldap01 ~]# ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f hdb-index.ldif 
modifying entry "olcDatabase={2}bdb,cn=config"

4)通过ldapsearch进行验证,是否“sn pres,eq sub”添加成功。

[root@mldap01 ~]# ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config   
                        '(olcDatabase={2}bdb)' olcDbIndex | grep -i 'sn' 
olcDbIndex: sn pres,eq,sub

从上述结果得知,索引添加成功。后期针对OpenLDAP服务器性能监控,适当添加索引,不仅能提高查询请求,还能提高服务器的性能。

相关文章
|
存储 Shell Linux
【Shell 命令集合 网络通讯 】Linux 显示Unix-to-Unix Copy (UUCP) 系统的状态信息 uustat命令 使用指南
【Shell 命令集合 网络通讯 】Linux 显示Unix-to-Unix Copy (UUCP) 系统的状态信息 uustat命令 使用指南
150 0
|
8月前
|
安全 Unix Linux
Unix:Linux的“祖师爷”
Unix的诞生 Unix操作系统诞生于1969年,由肯·汤普逊(Kenneth Lane Thompson)和丹尼斯·里奇(Dennis MacAlistair Ritchie)在AT&T的贝尔实验室开发。其初衷是为了在闲置的PDP-7计算机上开发一个简单的操作系统,以便进行编程和游戏。最初的Unix是用汇编语言编写的,但随后为了更高效的开发和更好的可移植性,里奇和汤普逊用C语言重写了Unix的大部分代码,这奠定了Unix的基础,并促进了C语言的广泛应用。
201 2
|
存储 网络协议 Ubuntu
【Linux开发实战指南】基于UDP协议的即时聊天室:快速构建登陆、聊天与退出功能
UDP 是一种无连接的、不可靠的传输层协议,位于IP协议之上。它提供了最基本的数据传输服务,不保证数据包的顺序、可靠到达或无重复。与TCP(传输控制协议)相比,UDP具有较低的传输延迟,因为省去了建立连接和确认接收等过程,适用于对实时性要求较高、但能容忍一定数据丢失的场景,如在线视频、语音通话、DNS查询等。 链表 链表是一种动态数据结构,用于存储一系列元素(节点),每个节点包含数据字段和指向下一个节点的引用(指针)。链表分为单向链表、双向链表和循环链表等类型。与数组相比,链表在插入和删除操作上更为高效,因为它不需要移动元素,只需修改节点间的指针即可。但访问链表中的元素不如数组直接,通常需要从
514 2
|
10月前
|
Unix Linux 编译器
UNIX/Linux 上的安装
UNIX/Linux 上的安装。
128 2
|
Unix 物联网 大数据
操作系统的演化与比较:从Unix到Linux
本文将探讨操作系统的历史发展,重点关注Unix和Linux两个主要的操作系统分支。通过分析它们的起源、设计哲学、技术特点以及在现代计算中的影响,我们可以更好地理解操作系统在计算机科学中的核心地位及其未来发展趋势。
|
Linux 数据安全/隐私保护 索引
linux inode索引节点使用率100% 解决+hustoj忘记密码+最新MDK注册方法
linux inode索引节点使用率100% 解决+hustoj忘记密码+最新MDK注册方法
153 1
|
Ubuntu 安全 Unix
在Linux中,有哪几种linux/unix发行版本?
在Linux中,有哪几种linux/unix发行版本?
|
Ubuntu Unix Linux
在Linux中,Unix和Linux之间的关系是什么?
在Linux中,Unix和Linux之间的关系是什么?
|
缓存 关系型数据库 MySQL
在Linux中,如何优化MySQL性能,包括索引优化和查询分析?
在Linux中,如何优化MySQL性能,包括索引优化和查询分析?
|
SQL 自然语言处理 网络协议
【Linux开发实战指南】基于TCP、进程数据结构与SQL数据库:构建在线云词典系统(含注册、登录、查询、历史记录管理功能及源码分享)
TCP(Transmission Control Protocol)连接是互联网上最常用的一种面向连接、可靠的、基于字节流的传输层通信协议。建立TCP连接需要经过著名的“三次握手”过程: 1. SYN(同步序列编号):客户端发送一个SYN包给服务器,并进入SYN_SEND状态,等待服务器确认。 2. SYN-ACK:服务器收到SYN包后,回应一个SYN-ACK(SYN+ACKnowledgment)包,告诉客户端其接收到了请求,并同意建立连接,此时服务器进入SYN_RECV状态。 3. ACK(确认字符):客户端收到服务器的SYN-ACK包后,发送一个ACK包给服务器,确认收到了服务器的确
313 1