关于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时,用多个源,用逗号分开,是可以的。