I'm facing the following challenge: I have a couple of fairly large MyISAM tables (~15 million rows that each contain 3 columns: 1 BIGINT, 1 INT and 1 FLOAT) and I need to significantly improve the read performance (Select commands need to improve by factor 20 to 30).

As those tables are read-only (i.e. they contain "expert" values that will never be changed), my best guess to improve the performance is to create a stored routine that will automatically mirror the concerned tables in MEMORY tables (not sure yet how to do this).

Would this approach make sense? Any better ideas?

Also: while the BIGINT column is the primary key, I'm using the INT field as condition in my Select commands (each returning ~5000 rows). Hence I created a BTREE Index for this column. How should I decide between BTREE and HASH or other options?

Many thanks!