• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

mysql 搞代码 7年前 (2018-06-02) 127次浏览 已收录 0个评论

请问,检索的时候,是用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


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:请教,检索的时候,是用userid快呢,还是用email快

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址