V1.1.0.0 官方版本今天终于上线了。和上一个官方版本 V0.9.6.0 比起来,V1.1 版本增加了很多的功能,性能方面也大幅提高。下面列举一下 V1.1 版本的改动说明
- 增加了 Sqlite3 的数据库适配器,有了这个适配器,HubbleDotNet 可以做类似Lucene那样的本地化存储了
- 对同步时索引的性能进行了优化,优化后索引的速度已经非常接近目前索引最快的 Sphinx
- 增加了 top 0 这个新特性,用于那种只希望查符合条件记录数的应用.
- 改善了Match 算法的匹配相关度,将完全匹配的记录调至最前面。
- 增加了MySQL 数据库适配器,这个适配器只实现了被动模式的功能,主动模式还没有实现,待以后完善
- 对2个条件的排序进行了性能优化
- 查询方面进行了进一步优化,用堆排序取代了快速排序,用hash table 访问键值索引(untokenized index) 取代了原来的二分查找算法。
- 增加镜像表功能,这个功能可以为被动模式的索引构建本地镜像表,用于实现数据库操作的读写分离。
- 增加了后台任务调度功能,可以在HubbleDotNet中设置定时同步,优化等等后台任务,不再需要自己来做后台任务了。
- 对同步功能进行了优化,实现了批量更新和索引,性能比原来提高了数十倍
- 增加了长时间执行的语句的监控,如果某个语句执行超过60秒,将在日志中输出,帮助系统管理员维护索引系统.
- 解决了大并发下客户端吊死的故障,客户端吊死后,会造成服务器连接池满的故障
- 屏蔽了Query Cache 持久化功能,这个功能会导致大并发是查询性能下降,以后再考虑如何优化这个功能,暂时屏蔽。
- 增加了一个OptimizeOption.None 优化选项,这个选项选中的话,同步后不自动进行优化
- 增加 SQL 跟踪功能,通过 SP_Configure ‘SqlTrace’, ‘True’ 可以打开这个功能,打开后,系统将在 app log 中记录所有的执行的SQL语句,即其执行时常,当前连接池数量等,这个功能用于帮助系统分析员分析大并发下的系统性能问题。
- 增加 Union 功能,可以将多个SQL语句的结果联合在一起输出,类似SQL SERVER的UNION功能。
- 增加 Distinct 功能,用于对结果消重
- 增加 NotIn 功能,这个功能往往和Union配合使用,用于显示某个结果的补集
- 当连接池满时,采用反复尝试的方法来等待连接池释放,用于解决瞬间大访问量的问题。
- 增加 SP_ResetCache 存储过程,用于手工重置缓存
- 在 HubbleCommand 中增加 ResetDataCacheAfterTimeout 这个属性,设置为true时,当Data cache 超时时,将强制更新数据。
- 优化了索引性能,性能方面比0.9 版本大概有50%左右的提升.
- 增加了用户权限管理功能,可以增加用户名和密码,并为不同用户指定权限。这样做可以提高系统的安全性
- 修改了 like 算法, like ‘%xxx%’ 在新版本中是直接通过 like ‘%xxx% 方式查询数据库,和在数据库中执行 like ‘%xxx%’ 的效果相同。如果要通过hubble的索引先过滤,要用 like ‘*xxx*’ 这种语法才行。
- 提高了 GroupBy 的性能.
- 提高了 match query 的性能
下载地址: