You need to index *ALL* the columns? WOW. I have to wonder if that's the best design then. Maybe an associated table, instead?
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)
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
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
Just a stab at a maybe solution. Dunno if it fits your model or not, at all.
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).
An optimist sees the glass as half full.
A pessimist sees the glass as half empty.
A realist drinks it no matter how much there is.