350 列搜索表与 25 列搜索表的性能差异

2 performance java

我目前正在做一些休眠性能测试。我的要求是在包含 800 万行和 350 列的表的特定列中搜索数据。目前,我无法访问该数据库,但是,我现在使用的测试数据库也包含 8 百万+。

我的问题是,在包含 350 列的表中搜索数据与在包含 25 列的表中搜索数据时,在扫描速度方面是否存在显着差异?

顺便说一下,我检查数据的方式是:

sessionFactory.getCurrentSession().createSQLQuery("SELECT COL_5 from MY_TABLE where COL_5='" + theColValuePassedFromParameter+ "'").list();
Run Code Online (Sandbox Code Playgroud)

其中,如果返回的列表为空,布尔方法将返回true,否则返回false;如果有人能指出我在休眠中搜索非主键数据的更好、更高效的方法,我也将不胜感激。

提前致谢...

小智 5

如果有人能给我指出一种更好、更高效的方式来搜索非主键数据 [...]

在您要过滤的列上的数据库中添加索引 - 在这种情况下COL_5。生成的执行计划应该是单个索引查找并且性能差异可以忽略不计(甚至为零)。


此外,与其获取整个结果集,不如检查是否至少有一个结果行。您可以将 a 添加TOP 1到您的查询(或任何等效的 SQL),或添加一个.setMaxResults(1).