怎么用php+sphinx+mongodb来打造千万级搜索??,报错-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

怎么用php+sphinx+mongodb来打造千万级搜索??,报错

一枚小鲜肉帅哥 2020-06-20 19:24:24 125

怎么用php+sphinx+mongodb来打造千万级搜索??求助? 有人说用用PHP读取mongodb输出,然后sphinx来搜索, 有一个疑问就是mongodb千万级数据 用这种方法会不会很慢。。之前有做给一个测试,感觉有点慢,sphinx经常断开。 求赐教好的方法。。

云服务器登录 云服务器设置
分享到
取消 提交回答
全部回答(1)
  • 一枚小鲜肉帅哥
    2020-06-20 19:33:10

    python 数据源 ,  主索引+增量索引 =你用在千万级数据上试过没。。, 而且搜索量非常大 是访问量的2-3倍 mongo做千万级应用准备最少上半个机柜大内存机吧 sphinx不能直接支持mongodb的。我们之前是用python来建立sphinx和mongodb之间的数据接口。sphinx索引完成之后,搜索动作时在sphinx自身的索引文件上完成的,不涉及的对数据库的搜索了。然后php再根据sphinx给出的id去读mongodb就可以了,怎么会出现断开什么的? 不过python去读mongodb的速度肯定要比sphinx自己直接读mysql要慢,有实力的话可以自己用c写个接口。 mongo做千万级应用准备最少上半个机柜大内存机吧 sphinx不能直接支持mongodb的。我们之前是用python来建立sphinx和mongodb之间的数据接口。sphinx索引完成之后,搜索动作时在sphinx自身的索引文件上完成的,不涉及的对数据库的搜索了。然后php再根据sphinx给出的id去读mongodb就可以了,怎么会出现断开什么的? 不过python去读mongodb的速度肯定要比sphinx自己直接读mysql要慢,有实力的话可以自己用c写个接口。

    估计sphinx要分布式,mongodb性能影响应该会小一点。。。

    sphinx做raid主要提升磁盘速度吧。 sphinx不能直接支持mongodb的。我们之前是用python来建立sphinx和mongodb之间的数据接口。sphinx索引完成之后,搜索动作时在sphinx自身的索引文件上完成的,不涉及的对数据库的搜索了。然后php再根据sphinx给出的id去读mongodb就可以了,怎么会出现断开什么的? 不过python去读mongodb的速度肯定要比sphinx自己直接读mysql要慢,有实力的话可以自己用c写个接口。

    python+sphinx+mongodb以前也这样做过。。千万级!!没试过。

    另外给sphinx做缓存。。还有有其它方法??

    把所有的查询结果放到memcache里面啊,如果不存在数据过期或者更新的话;还可以试试把sphinx的index文件放到/dev/shm里面,做好重启后重新索引的脚本就是了。
    ######做二次缓存也可。。 应该大部分消耗在sphinx上吧。。 如果同时缓存mongodb中的文本数据的话,内存占用大了。所以只缓存sphinx的数据。######就是"你可以直接把所有的查询结果放到memcache里面"
        mongo做千万级应用准备最少上半个机柜大内存机吧
    
    0 0
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

相似问题
最新问题