Best way for large mysql queries to load on page?

Actually, for speed you'll want to denormalize the DB, most of the time people go nuts making relationship data where it just isn't necessary....Denormalizing your data really just means flattening the relationships so that one select on one table will give you all the data you need.

Example FTS index on MySQL:

create fulltext index myfast_index on YOUR_TABLE(text_column_name);


To ensure your queries are using the index and something isn't fucking that up;

describe <insert query here>


The output of this command on your DB will tell you if it hit the "index" or your raw tables.
 


Surprised no one has mentioned this before, but you can try caching common searches using something like Memcache or Redis.

If you have common searches that update frequently, you could use MapReduce to pre-calculate the searches.