我们正在为外部应用程序开发类似Web界面的CRUD。为此,我们需要显示来自不同表的数据。有些是巨大的,非常“活着”,有很多行(数百万)。一些是小型配置表。
现在我们想让我们的用户对我们展示的网格进行过滤,细化,排序,分页等。作为用户选择的结果 - 我们正在构建选择查询。
由于显而易见的原因,对非索引字段进行过滤将产生相当长的运行查询。另一方面,索引表的每一列,看起来有点“怪异”。我们确实拥有超过50行的表格。
我们正在研究Apache Lucene,但据我所知 - 它可以帮助我们解决文本索引问题。但是数字,日期,范围呢?是否有任何解决方案,讨论可用于上述问题?
此外,我必须指出此问题仅针对UX。对于所有应用程序自己的需求,我们 good 。
答案 0 :(得分:1)
您是正确的,一般情况下,您不希望在非索引字段上允许随机谓词,但是这有多大影响非常依赖于表大小,正在使用的数据库引擎和用于驱动数据库的计算机。对于非索引列,某些引擎并不是太糟糕,但在最坏的情况下,每个引擎都会退化为顺序扫描。顺序扫描并不像听起来那么糟糕。
一些想法