【发布时间】:2011-09-18 13:15:14
【问题描述】:
所以我有一张包含所有用户及其价值观的表格。我想在他们得到多少“钱”之后订购它们。问题是他们在两个不同的领域有钱: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 时,它显示“使用文件排序”,我想知道是否有任何方法可以优化它?
【问题讨论】:
标签: mysql sql database indexing