kuroneco: честно скажу - я не всё понял из того что делал. однако сейчас создал новую таблицу с userid int и value bigint, добавил только индекс на userid и теперь всё отрабатывает мгновенно.
выражаю благодарность за потраченное время
вот что получаю, но не пойму есть ли индекс
mysql> explain select userid,value from keys where userid=4650017 limit 1;
+----+-------------+--------+------+----------------------------------+------+---------+------+---------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+--------+------+----------------------------------+------+---------+------+---------+-------------+
| 1 | SIMPLE | keys | ALL | PRIMARY,userid,userid_2,userid_3 | NULL | NULL | NULL | 6344106 | Using where |
+----+-------------+--------+------+----------------------------------+------+---------+------+---------+-------------+
1 row in set (0.00 sec)
Innodb, в таблице около 7 млн записей и 750Мб, остальные таблицы в базе ничтожно малы
стоит ли попробовать сделать разделение с range или использовать mongodb?