Performance optimization with Lucene4.0

简介: 假期重新把之前在新浪博客里面的文字梳理了下,搬到这里

Performance optimization with Lucene4.0
原文链接http://www.google.com.hk/url?sa=t&rct=j&q=performance+optimization+with+lucene+4&source=web&cd=1&ved=0CDYQFjAA&url=http://archive.apachecon.com/eu2012/presentations/06-Tuesday/PR-Lucene/aceu-2012-lucene-4-performance-tuning.pdf&ei=axTMUPO9E8yViAfo_oDYDQ&usg=AFQjCNG4lXwTLU-MAl6czbUHhIrdez7AzQ&bvm=bv.1355325884,d.aGc&cad=rjt
该报告中不少亮点,例如:
1 Pluggable Codecs
2 Per Document Values
DocValues
3 Concurrent Flush  
无锁多线程写索引
4 Multiple Scoring Models flexible ranking
排序调优接口的开发、经典模型的调参
5 New Term Dictionary
6 From UTF-16 to UTF-8  no string ojbects anymore

最为关心的对应用来说,查询的性能相关
7 500% faster Filter
8 100x to 200x  FuzzyQuery
9 reduces memory footprint 30x
10 10x faster than FieldCache for a float field
11
近似2倍的索引构建性能提升

实践中
1
倒排结构的 可侵入,意味着倒排的结构细粒度的可控,针对具体数据类型。例如key-value型突出的,可以
针对性去掉一些信息
2
各部分codec的可以选择,意味者对特定的数据结构可以采取特定的优化编码
3
得分模型的可配置和可调参,意味着排序的灵活性和更加有针对性的可定制化
4
整个代码结构和接口命名更加规范,便于理解和扩展
5
第三方包的丰富和增强,拿来用成本更低
6 collector
的可定制,为查询优化开了一个极大地口子
7
方便新技术的实验,例如SSD的扩展,针对SSD特性指定有效的存储结构
8
新的结构更加松散和清晰,意味着lucene C++版本搜索借鉴,成本大大降低

目录
相关文章
|
2月前
|
存储 关系型数据库 MySQL
Optimization and Indexes
MySQL通过索引快速定位具有特定列值的行,避免全表扫描,提高查询效率。常用的索引如PRIMARY KEY、UNIQUE等大多存储在B树中,特殊情况使用R树或哈希索引。索引帮助快速匹配WHERE子句条件的行,减少候选行数,并在多列索引和表连接操作中优化查询。具体特性如B树和哈希索引的比较见特定章节。
|
2月前
|
关系型数据库 MySQL 索引
WHERE Clause Optimization
本节探讨了WHERE子句的优化方法,虽然示例基于SELECT语句,但也适用于DELETE和UPDATE语句。MySQL自动执行多种优化,例如仅计算一次索引使用的常量表达式、快速检测无效表达式、合并HAVING和WHERE子句、优先读取常量表、寻找最佳连接组合、使用内存中的临时表、选择最佳索引以及在某些情况下仅使用索引树解析查询,从而提升查询效率。
|
6月前
|
缓存 监控 前端开发
Performance Optimization
Performance Optimization
94 2
|
6月前
|
Oracle 关系型数据库
Adaptive Query Optimization
Adaptive Query Optimization
41 4
sbs
|
SQL 存储 监控
One SQL to Rule Them All: An Efficient and Syntactically Idiomatic Approach to Management of Streams and Tables 论文翻译
One SQL to Rule Them All: An Efficient and Syntactically Idiomatic Approach to Management of Streams and Tables[文件: One SQL to Rule Them All- An Efficient and Syntactically Idiomatic Approach to Manag
sbs
210 0
One SQL to Rule Them All: An Efficient and Syntactically Idiomatic Approach to Management of Streams and Tables 论文翻译
|
SQL 存储 算法
《Optimization of Common Table Expressions in MPP Database Systems》论文导读
Optimization of Common Table Expressions in MPP Database Systems
《Optimization of Common Table Expressions in MPP Database Systems》论文导读
|
存储 缓存 算法
|
算法 关系型数据库 MySQL
Fundamental Techniques for Order Optimization
这是一篇1996年的老paper了,主要讲解了IBM DB2如何针对query当中的有序性进行优化。但对于后续physical property的优化有较为深远的影响,由于DB2的优化器起源于System-R以及其后续演进的starburst,因此延续了system-R中的interesting order和order property的概念。关于system-R的介绍请看之前的文章。 order这种physical property并不只限于order by算子,基于有序的group by/distinct等,都会利用到数据的排序操作,而排序本身就是比较昂贵的计算,因此应该对其做尽可能的优化
226 0
Fundamental Techniques for Order Optimization
|
SQL 监控 算法
Adaptive Execution of Compiled Queries 论文解读
本篇是TUM的内存数据库HyPer针对compile-based执行框架的改进。其中涉及到HyPer的动态编译和并行执行框架 动态编译文章的结尾提到了编译执行系统存在的2个问题,其中之一就是:不可控的编译时间。
496 0
Adaptive Execution of Compiled Queries 论文解读
|
SQL 算法 关系型数据库
Optimizing Queries over Partitioned Tables in MPP Systems
随着互联网数据的爆炸性增长,传统数据库系统在单表数据容量方面承受了越来越大的压力。以前公司内部的数据库,存放的主要是来自公司业务或内部管理系统的信息,中小型公司甚至一个MySQL实例就搞定了。但现在数据源不仅更丰富,数据量也在指数级增长,从业务的角度,基于hash/range的分区表变得越来越有吸引力。
258 0
Optimizing Queries over Partitioned Tables in MPP Systems