优化 Web 访问日志的模式查询
1 引言
Web 访问日志记录了用户访问 Web 服务器的历史,通常存储在关系数据库中,管理员可用于 Web 使用分析。在发现一些频繁出现的顺序模式后,需要在日志中搜索包含这些模式的访问序列,这种搜索被称为模式查询。
例如,一个关系 R(IP,TS,URL) 存储了 Web 访问序列,如 {A, B} →{C} →{D}、{A} →{E, C} →{F} 和 {B, C, D} →{A}。若要搜索顺序模式 {A} →{E} →{F},可以使用如下 SQL 查询:
SELECT IP
FROM
R R1, R R2, R R3
WHERE
R1.IP=R2.IP
AND
R2.IP=R3.IP
AND
R1.TS<R2.TS
AND
R2.TS<R3.TS
AND
R1.URL='A'
AND
R2.URL='E'
AND
R3.URL='F';
由于 Web 访问日志通常非常大,执行模式查询时需要对数据库访问进行优化。传统的索引技术,如 B + -树、位图索引、k - d -树和 R -树,主要用于优化单元组的精确匹配查询,对处理多元组序列的部分匹配的模式查询效果不佳。还有基于集合的索引方法,用于改进子集搜索,但仅适用于无序项集的检索。
下面分析 B + -树和基于集合的索引在执行上述查询时的情况:
1. B + -树索引 :先通过 IP 属性连接包含每个 Web 访问序列所有项的元组,然后验证它们是否按给定顺序包含给定项。由于 Web 访问序列可能跨越多个磁盘块,会导致对关
超级会员免费看
订阅专栏 解锁全文
2206

被折叠的 条评论
为什么被折叠?



