Reduce query execution time in frequently updated tables The current query takes approx 6-7 seconds. Data is been fetched from 7 tables. Tables are fully normalized, frequently updated but are mostly read approximately 100 times a day. The same query gets executed 7,00,000 times in a single day with updated data. A query is already optimized and indexed. Table approximately has 300,00,000 rows. Is there any way to reduce the query time?
The table works on the InnoDB engine.

I was planning for few methods please correct me if I am wrong


Memcache the rows using PHP
Use replication Master/Slave architecture in slave have MyISAM (Doubt about the engine in this architecture) 
Use MySQL caching mechanism   


(a)  query_cache_size = 268435456
query_cache_type=1
query_cache_limit=1048576
(b) buffer_pool
Can both (a) and (b) perform together? Will it improve the performance for such huge data?



Is there some other technique for improving query execution time?
With 3GB of RAM, you should probably keep innodb_buffer_pool_size at no more than 1G.

The Query cache is of minimal use, and it gets slow when you increase its size.  Recommend no more than 32M for query_cache_size.

There is such a thing as "over-normalization"; please provide details.

What indexes do you have?  Do you understand when to use a 'composite' index?

Don't use memcached -- that's just putting a cache in front of a cache.

Replication may be useful if you have lots of users contending for MySQL.  It can speed up a query only if that is a lot of contention during the query.  I don't hear that is the issue.

Please provide the query.