G!Oracle DB에서 수백만 행 중에서 선택하는 가장 좋은 방법
저는 1 천 5 백만 행을 가진 테이블에서 쿼리하고자하는 단어가 백만 가지입니다. 단어와 함께 동의어의 결과가 각 쿼리 후에 처리됩니다.
테이블은 다음과 같습니다
synonym word
---------------------
ancient old
anile old
centenarian old
darkened old
distant far
remote far
calm gentle
quite gentle
이것은 현재 자바에서 수행하는 방법이다 :
....
PreparedStatement stmt;
ResultSet wordList;
ResultSet syns;
...
stmt = conn.prepareStatement("select distinct word from table");
wordList = stmt.executeQuery();
while (wordList.next()) {
stmt = conn.prepareStatement("select synonym from table where word=?");
stmt.setString(1, wordList.getString(1));
syns = stmt.executeQuery();
process(syns, wordList.getString(1));
}
...
이 느린 믿을 수 없다. 이런 일을하는 가장 빠른 방법은 무엇입니까?
건배, 크리스
단어 열에 색인이 있다고 가정합니까? – JeeBee
예, 단어 열에 색인이 있습니다. – chris