【发布时间】:2011-06-03 02:31:07
【问题描述】:
我有一个相当简单的表(原谅错误/愚蠢,我还在学习。为 MySQL 编写):
CREATE TABLE IF NOT EXISTS `userdata` (
`userid` UNSIGNED int(18446744073709551615) AUTO_INCREMENT,
`username` char(255) NOT NULL,
`password` char(255) NOT NULL,
`salt` char(255) NOT NULL,
`email` char(255) NOT NULL,
PRIMARY KEY(`userid`)
);
我了解到添加索引可以提高查询的性能,因为它不需要查看整个数据库。相反,它会查看索引并匹配数据(如果我错了,请纠正我)。
我已经找到了足够好的索引创建方法,但不是我应该索引的内容。
我应该在用户名上有我的索引吗?电子邮件地址、用户 ID 或我尚未添加的某些字段?
【问题讨论】:
-
这取决于您在表上运行的查询类型。例如,您会按名称或 ID 或两者搜索吗?
-
最有可能通过名称进行搜索(例如此处的搜索工具,或在论坛上找到的工具),以及内部 ID。不过,我愿意使用最快的。
标签: mysql sql indexing create-table