You need to create an index. No, really. Maybe even more than one.
Queries against 7 million rows without an index is going to be slow. You could split up the table or allocate a huge amount of memory for caching, but indexes give you far more bang for the buck.
You may ask, which index(es) should you create? Good question. That depends on the specific queries you run against the table. Table design is determined by your data, but optimization is determined by your queries.
Learn to use EXPLAIN. See Explain Demystified.
Learn how indexes work. See More Mastering the Art of Indexing
Re your comment: Yes, a primary key implicitly has an index (at least in MySQL), but I have no idea if the query you need to improve benefits from that index.
Here's a tip: when I want to experiment with indexes on a really large table I make a copy table from a subset of the rows.
mysql> create table test.mytable as select * from realdb.mytable limit 10000;
mysql> use test;
Put a nontrivial number of rows into the table, but few enough that working on it won't take too long.
Now you can create and drop indexes and test out the queries to see how they perform. Once you have identified the index or indexes that give you the most benefit, you can have more confidence that creating them on your real database is worth it.