I am designing a query that pull rows from a large table based on parameters expressed as ranges (specifically years). There are some cases where I'll want to pull rows based on 3 specific values (say, pull customer records where customer number is #001, #002, and #003).

For the range question, I'm wondering if there is a syntax for the conditional behind the WHERE statement that works faster than the others:

IN()

BETWEEN()

high.range >= data >=low.range

For the IN() option, I could write a script that translate the years into a list of years from low.range to high.range inclusive. So, for the range 2000 to 2004, it would be IN('2000','2001','2002','2003','2004'). This would be an extra programming step outside of MySQL, but it's not hard for me to do. 

I realize that there are other things I can do to speed things up (like using a clustered index), but I just wanted to see if there is any difference from which sql syntax to use after the WHERE statement.