欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

sphinx(coreseek)处理分表的方案

程序员文章站 2022-05-08 09:00:29
...
关于sphinx处理分表,有以下几个疑问
1、对于垂直分表,sql_query直接用join查询,但有人说这个效率不高,建立索引的速度比较慢?又有人说不会影响效率,直接使用join即可,求解并希望说明原因
2、对于水平分表,我原本设想的是在数据源中多写几个sql_query,但是生成索引的时候提示warning:key 'sql_query' is not multi-value; 意思是重复了,我记得之前测试成功过,这次又不行了,难道我记错了吗
如果行不通,想了以下几种方案:
① sql_query用union处理
② sql_query用视图处理
③ 索引中的source来自多个数据源,网上有人说可以来自多个数据源,但并没有找到具体配置方法,逗号不行
(将每个分表配置一个数据源,重复信息继承)
这几种方案哪个比较合适,求解并希望说明原因
谢谢诸位了,感激不尽

回复内容:

关于sphinx处理分表,有以下几个疑问
1、对于垂直分表,sql_query直接用join查询,但有人说这个效率不高,建立索引的速度比较慢?又有人说不会影响效率,直接使用join即可,求解并希望说明原因
2、对于水平分表,我原本设想的是在数据源中多写几个sql_query,但是生成索引的时候提示warning:key 'sql_query' is not multi-value; 意思是重复了,我记得之前测试成功过,这次又不行了,难道我记错了吗
如果行不通,想了以下几种方案:
① sql_query用union处理
② sql_query用视图处理
③ 索引中的source来自多个数据源,网上有人说可以来自多个数据源,但并没有找到具体配置方法,逗号不行
(将每个分表配置一个数据源,重复信息继承)
这几种方案哪个比较合适,求解并希望说明原因
谢谢诸位了,感激不尽

sphinx 不是mysql,它是个搜索引擎。
如果数据量很大,建议水平分,
1)可以使用内置的分布索引(其实是代理)
2)自己发送多个请求,最后合并数据。

多个数据源, 在indexer内配置source时,用多个源,用逗号分开,是可以的。