You need to index *ALL* the columns? WOW. I have to wonder if that's the best design then. Maybe an associated table, instead?
Now you have only the one index. Granted, it's a big index, but that's not an issue for MySQL. So your queries would do something like
CREATE maintable (
id INT AUTO_INCREMENT PRIMARY KEY,
... various fields but not the REAL data ...
CREATE realdatatable (
id INT REFERENCES maintable(id),
flag INT, /* describes the type of the data
INDEX masterindex (flag, data)
Just a stab at a maybe solution. Dunno if it fits your model or not, at all.
SELECT list, of, fields
FROM maintable AS M, realdatattable AS R
WHERE M.id = R.id
AND R.flag = 33
AND R.data BETWEEN 3.771 AND 4.032
Having said all the above: Though 50 indexes seems excessive, MySQL should be able to handle them just fine. If you use EXPLAIN and find it using the wrong index in some cases, you can use "hints" in the SELECT (usually) to force it to use the right one(s).