我有一个从服务器端获取数据的数据表,我想通过添加索引来优化我的表,以便排序更快(现在排序 60K 行大约需要 7 秒)
我的“将创建语句复制到剪贴板”如下所示:
CREATE TABLE `users` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
`password` char(128) COLLATE utf8_unicode_ci NOT NULL,
`salt` char(5) COLLATE utf8_unicode_ci NOT NULL,
`joined` int(10) unsigned NOT NULL,
`name` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
`surname` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
`role` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
`photo` varchar(45) COLLATE utf8_unicode_ci DEFAULT NULL,
`user_type` int(11) DEFAULT NULL,
`user_owner` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `email` (`email`)
) ENGINE=InnoDB AUTO_INCREMENT=81634 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
我遇到的问题是,如果我使用这个:
ALTER TABLE `users` ADD INDEX (`email`, `name`, `surname`, `user_type`) ;
只有电子邮件被索引(至少只有电子邮件列可以快速排序)。我不确定我能做些什么来添加其他索引列(或者它是否真的有利于优化它)。