sql索引问题
有3个语句。
where cid=?
where id=? and ownerid=?
where cid=? and ownerid=?
现在id已经是主键索引了。
请问这样的情况表表应该如何加索引?
分别对ownerid,cid添加索引吗?
还有一种情况,另一个表:
where cid=? and userid=?
where userid=?
where cid=?
这3个sql语句应该如何添加索引?分别对userid和cid添加索引?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
第一种加一个(cid,ownerid)的索引 顺序不要颠倒 关于id和ownerid的不用加了 id已经是主键了 再加ownerid的索引纯属多余
第二种加一个(cid,userid)和userid
当然这两种情况严格来说都需要确认哪个字段的选择性高 如果差别很大的话 建议根据情况把复合索引的第一个字段使用选择性高的字段
情况1
ALTER TABLE test_table ADD INDEX index1 (id,ownerid);
ALTER TABLE test_table ADD INDEX index2 (cid,ownerid);
情况2
ALTER TABLE test_table ADD INDEX index3 (cid,userid);
ALTER TABLE test_table ADD INDEX index4 (userid);
针对第一个的三条sql语句:
第二个表的语句:
第一种情况加这个索引就可以了
第二种情况楼上说得对。