Итак, у меня есть таблица со всеми пользователями и их значениями. И я хочу заказать их после того, сколько "денег" они получили. Проблема в том, что у них есть деньги в двух отдельных полях: users.money и users.bank.
Итак, это моя структура таблицы:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(4) unsigned NOT NULL AUTO_INCREMENT,
`username` varchar(54) COLLATE utf8_swedish_ci NOT NULL,
`money` bigint(54) NOT NULL DEFAULT '10000',
`bank` bigint(54) NOT NULL DEFAULT '10000',
PRIMARY KEY (`id`),
KEY `users_all_money` (`money`,`bank`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_swedish_ci AUTO_INCREMENT=100 ;
А это запрос:
SELECT id, (money+bank) AS total FROM users FORCE INDEX (users_all_money) ORDER BY total DESC
Что отлично работает, но когда я запускаю EXPLAIN, отображается «Использование сортировки файлов», и мне интересно, есть ли способ оптимизировать его?