Java

搜尋 350 列的表和搜尋 25 列的表之間的性能差異

  • July 12, 2013

我目前正在做一些休眠性能測試。我的要求是在包含 800 萬行和 350 列的表的特定列中搜尋數據。目前,我無法訪問該數據庫,但是,我現在使用的測試數據庫也包含 800 萬+。

我的問題是,在包含 350 列的表中搜尋數據與在包含 25 列的表中搜尋數據時,掃描速度是否存在顯著差異?

順便說一句,我檢查數據的方式是:

sessionFactory.getCurrentSession().createSQLQuery("SELECT COL_5 from MY_TABLE where COL_5='" + theColValuePassedFromParameter+ "'").list();

where in 如果返回的列表為空,則 boolean 方法將返回 true,否則返回 false;如果有人能指出我在休眠狀態下搜尋非主鍵數據的更好、更高效的方法,我也將不勝感激。

提前致謝…

如果有人可以為我指出一種更好、更高效的方式來搜尋非主鍵數據

$$ … $$

在您要過濾的列上的數據庫中添加索引 - 在這種情況下COL_5。生成的執行計劃應該是單個索引查找,並且性能差異可以忽略不計(甚至為零)。


此外,無需獲取整個結果集,只需檢查是否至少有一個結果行。您可以添加 aTOP 1到您的查詢(或任何 SQL 等效項),或添加.setMaxResults(1).

引用自:https://dba.stackexchange.com/questions/46221