生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

i4o 开源项目增强 LINQ 索引功能

  • 2018-10-30
  • 本文字数:619 字

    阅读完需:约 2 分钟

当一个 LINQ 表达式直接访问数据库时,DLINQ Provider 支持所有数据库索引。但是 LINQ 不仅会访问数据库,它还可能访问 XML 或者更简单的对象集合等。对于稍大些的查询,索引的缺失可能成为一个问题。

为了解决这个问题,Aaron Erickson 创建了一个名为 Index for Objects 或者 i4o 的产品。这个项目是开源的,可以下载下来试用。任何能增加到属性的可索引 Attribute 都应该被索引。当对象被依次放在 IndexableCollection 里时,索引就被自动创建。

在运行时情况下,当你调用 Where 和 Join 等扩展方法时,i4o 就开始起作用。它会评估表达式树,如果合适,就用一个索引查找(Index Lookup)替代 for-each 循环。

这个技术目前只在使用大型的内存对象集合的情况下才可用。在测试一个有着 100 万对象的集合时,i4o 将速度提高了差不多两个数量级。

作为一个新的项目,它还有很多的问题需要解决。有些比较简单,不久就能被实现,比如增加从集合中删除对象的支持或者支持 BindingList 等。但有些比较困难,比如在一个已被索引的集合里如何处理对象的更新。对象本身不知道它们在集合中,要给每一个被索引的类增加 INotifyPropertyChanged 支持是很无聊的,而且看上去用一些面向方面编程(AOP)技术去注入(Inject)必要的事件钩子可能是不可能实现的。

在 CodePlex 网站上此项目提供 Binary 和源代码格式下载。如果想了解更多关于 i4o 的信息或者提一些关于性能提高方面的建议,可以浏览 Aaron Erickson 的博客

查看英文原文: Indexes for LINQ

2018-10-30 16:491131

评论 1 条评论

发布
用户头像
mark
2018-11-08 22:30
回复
没有更多了
发现更多内容

架构师训练营-第五周-命题作业

sljoai

极客大学架构师训练营 第五周

视读——沟通的艺术,看入人里,看出人外(第一章)

废材姑娘

读书笔记 视觉笔记

可变对象和不可变对象

Leetao

Python Python基础知识

极客时间架构师训练营 - week5 - 作业 2

jjn0703

极客大学架构师训练营

领域模型为核心的架构设计 初篇

小隐乐乐

领域驱动设计 架构师

Java实现一致性 Hash 算法实现(训练营第五课)

看山是山

极客大学架构师训练营 一致性hash

架构师训练营第五周作业 设计分布式缓存系统

Melo

极客大学架构师训练营

第5周作业

田振宇

作业-05-java实现一致性hash算法

梦子说

极客大学架构师训练营

架构师训练营」第 4 周作业

edd

高性能系统设计

dapaul

极客大学架构师训练营

架构师训练营:第五周作业-一致性 hash实现

zcj

极客大学架构师训练营

分布式缓存总结

朱月俊

重学 Java 设计模式:实战模版模式「模拟爬虫各类电商商品,生成营销推广海报场景」

小傅哥

Java 设计模式 小傅哥 重构 代码规范

B站Up主自制秃头生成器,一键get张东升同款发型,网友:秃的太过真实

程序员生活志

程序员 B站 隐秘的角落 张东升 秃头生成器

ES5、ES6中继承的几种写法

Manito

Java

漫画:Integer 竟然有 6 种比较方式?

王磊

Java 编程 漫画 java编程 漫画编程

华为厦门DevCloud创新中心正式揭牌,“上云用数赋智”新助力

Geek_116789

架构师训练营 第五周 学习总结

一雄

学习 极客大学架构师训练营 第五周

【第九课 + 第十课】技术选型:缓存架构 + 消息队列与异步架构

Aldaron

架构师课程第五周总结

dongge

第五次作业

王锟

真懂Spring的@Configuration配置类?你可能自我感觉太良好

YourBatman

Spring Boot Spring Framework @Configuration Spring配置类

嗯?阿里为啥不用 ZooKeeper 做服务发现?

Java小咖秀

zookeeper 分布式 技术人生

一致性hash算法及java实现(转载,学习了)

王锟

小师妹学JVM之:JVM中的Safepoints

程序那些事

Java JVM 小师妹 性能调优 签约计划第二季

一致性哈希算法实现及案例测试,java版

潜默闻雨

架构师训练营 Week 05 总结

Wancho

架构师训练营作业 -- Week 5

吴炳华

极客大学架构师训练营

实现一致性哈希算法

Aldaron

golang实现基于虚拟节点的一致性hash算法

朱月俊

i4o开源项目增强LINQ索引功能_.NET_Jonathan Allen_InfoQ精选文章