MySQL - Large Table best practices/indexes
As a direct answer, what your query needs is a composite index on (shift, timestamp): ALTER TABLE historical_data ADD INDEX shift_ts(shift, timestamp)

However, you have a lot of indexes. and some are redundant. 


tag_id: has low cardinality. Drop it if you don't have "WHERE tag_id=x" queries 
shift, timestamp: combine them in 1 index (This is useful for your query)
hd_multicolumn: drop
value: if you don't query it, drop it
hd_multicolumn2: drop it
[IMPORTANT] If your table is an InnoDB table, add an auto increment field, and make it a primary key