请教,检索的时候,是用userid快呢,还是用email快

请教,检索的时候,是用userid快呢,还是用email快

请问,检索的时候,是用userid快呢,还是用email快?

一个表,有userid(int型)、email(varchar型)

email加了索引

请问,检索的时候,是用userid快呢,还是用email快?

数据库是mysql5.1



具体的看一下explain select userid,email from where table1;




当然是userid主键快

email是先要搜到这行数据主键userid的值 再用userid去搜索数据




肯定是int 类型快,



主要是看你的查询语句是怎么样的。

唯一约束email 加上索引 比主键慢不了多少




你这个语句就是通过主键来检索的嘛 

email 加上索引也不会对它产生什么样子的影响 对dml操作会有一定的影响

要是你的程序里面有这样的查询:

SELECT * FROM empuser WHERE email = XXX

那么它用到的就是 email 上加的索引。

如果你要检索出来的数据大于总数据量的30%左右 理论上说,全表扫描比索引检索的效率要高




引用SELECT * FROM empuser WHERE user_id=#user_id#;




探讨

引用SELECT * FROM empuser WHERE user_id=#user_id#;

理论上是一样快。但细节上还是要看表的存储引擎是什么? 如果是INNODB,则主键会快一点儿。如果是MYISAM的则应该相同。



如果你不用检索,你闲的蛋疼啊。还加一个

具体要看你的语句 要查什么




着个需要参考的有点多,看你的SQL 怎么利用索引,也看你的查询需求,可能需求不会用到其中的任何一个索引,

同时与存储引擎有一定关系,比如选择innodb,那样会相对于其他迎亲快点,可以参考下索引的实现原理1

请教,检索的时候,是用userid快呢,还是用email快

相关文章:

你感兴趣的文章:

标签云: