【发布时间】:2011-09-04 15:52:45
【问题描述】:
在我们的一个应用程序中,我们需要保存一些简单的表格数据,并且我们需要能够在其中一列上执行用户端自动完成。
我们提出的最初解决方案是将 MySQL 与 Solr 结合来实现这一点(MySQL 保存数据,Solr 只保存标记化的列并返回 id 作为结果)。但是最近发生了一些不愉快的事情(开发人员开始将一些数据存储在 Solr 中,因为 MySQL 表及其上所做的操作是 Solr 无法提供的),我们认为也许我们可以将它们合并在一起并消除两者之一。
所以我们不得不:(1) 将所有数据移动到 Solr (2) 使用 MySQL 进行自动补全
(1) 听起来很糟糕,所以我试了一下 (2),我首先将单个列的数据加载到 MySQL 中,禁用 MySQL 和 Solr 上的所有缓存,编写了一个能够执行非常相似的小型 webapp在两个数据库上查询 [1],并在本地和类似环境中针对两者启动了一些 JMeter 场景。结果显示 Solr 有 2.5-3.5 倍的优势,但是,我认为结果可能完全错误并且容易出错。
那么,你有什么建议:
- 正确对这两个系统进行基准测试,相信你需要 为 JVM 提供类似 [to MySQL] 的环境。
- 设计此系统。
感谢任何线索。
[1] SELECT column FROM table WHERE column LIKE 'USER-INPUT%' 在 MySQL 上,column:"USER-INPUT" 在 Solr 上。
【问题讨论】:
标签: mysql sql performance solr benchmarking