好记性不如烂笔头(1)

1.mysql join/order by/group:

Join 的时候最好选择小结果集驱动大结果集
Join 语句中的被驱动表的join条件最好加上索引
Join  buffer 大小的设置
Order  by  假如是根据有序索引直接获取有序数据 不用进行任何排序操作
无索引时候可以将排序字段和定位它所对应的行索引 排序后再去数据库中取需要的那些字段或者是一次性将所有需要的字段先放到内存中 排序后再到内存中取其他数据
假如order  by 只涉及一张表 假如此表又是驱动表 那会先排序再做join 假如排序字段不在两张表中或者需要经过join 后才能做 此时需要先存储到临时表再排序
Group  by 使用松散或者紧凑索引 临时表实现

2.lucene查询:

    先到词典tis中获取评分需要的相关数据 比如tf,docFreq信息后,将query经过语法分析后的term和doc计算相似度。计算的时候先去词典中 查找包含的term的doc信息。然后再计算。但是这个时候计算的结果也要常驻于内存中,所以当这些中间计算结果很大的时候,是不太合适的。
lucene使用并发合并和块处理来加快相似度的计算:并发合并是将每个term对应的doc排好序,,然后依此取出每个term的第一个doc,将大的doc去掉后组成一个队列,计算该队列的相似度;块处理就是将文档id有序的分块(mlogn)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值