To clarify this matter, I think grep is working. Firstly I removed duplicates and the raw file went from 6.3 G to 2.4G. Here is a sample of the file before: ERIK-TONEN-BOOKS NS NS2.WIDEXS.NET. ERIK-TONEN-BOOKS NS NS1.WIDEXS.NL. ERIK-TONEN-BOOKS NS NS3.WIDEXS.NL. JUST NS NS1.PARKED JUST NS NS2.PARKED OAPI NS NS47.WORLDNIC OAPI NS NS48.WORLDNIC and here is my next file with first the numerical representation of the domain and then the domain name: 37458663626657 = ERIK-TONEN-BOOKS 5878 = JUST 6274 = OAPI The searches are actually being run on the numbers and grep is perfect because we WANT to find all occurrences of the search string (a list of digits). All I do now is run grep on this file and spit out the results and a search for 229885524, for example, takes just under 30 seconds and returns 1 line. Searching for 22988552 is the same and returns two rows. I am now downgrading the VPS, but for now, this performance is entirely satisfactory--this is not a public tool--it's just for one person. :) Thanks.