我在 MySQL 中创建了一个包含 11,000,000 多行和 4 个数据透视表的新数据集。表格没有那么深,每个表格只有 6 - 12 列。
我的问题是我已经设置了 Lucene Apache SOLR 来索引数据,它非常适合搜索..但是
我没有注意到搜索的加载时间很长。如果我运行原始 SQL 命令,则两者之间的差异可以忽略不计。在什么情况下使用索引引擎比自己编写原始查询脚本更有利?
现在我有能力通过 SOLR 设置“权重”和所有这些。但我的印象是,我会大大减少服务器上的开销...是否只是我的数据集不够大/不够复杂这些发现非法吗?除了权重、排名和排序/过滤器等明显优势之外,使用 SOLR 等索引系统的开销优势是什么?
用于索引的抽象层永远不会比正确架构的数据库结构更好或更高效。相反,它的目的是成为一种工具,让没有经验的人更容易实现正确的架构结构。
我们必须查看表结构、索引定义、运行的查询,以及理想情况下的查询计划 (
EXPLAIN ANALYZE
),以便能够具体评论其运行效率。但一般来说,如果您只是SELECT
对表进行直接操作,它们会运行得相对较好,并且在正确索引时应该高效运行。