sql索引问题

发布于 2022-09-04 15:48:50 字数 327 浏览 9 评论 0

有3个语句。

  1. where cid=?

  2. where id=? and ownerid=?

  3. where cid=? and ownerid=?

现在id已经是主键索引了。
请问这样的情况表表应该如何加索引?

分别对ownerid,cid添加索引吗?

还有一种情况,另一个表:
where cid=? and userid=?
where userid=?
where cid=?
这3个sql语句应该如何添加索引?分别对userid和cid添加索引?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

情痴 2022-09-11 15:48:50

第一种加一个(cid,ownerid)的索引 顺序不要颠倒 关于id和ownerid的不用加了 id已经是主键了 再加ownerid的索引纯属多余

第二种加一个(cid,userid)和userid

当然这两种情况严格来说都需要确认哪个字段的选择性高 如果差别很大的话 建议根据情况把复合索引的第一个字段使用选择性高的字段

深海里的那抹蓝 2022-09-11 15:48:50

情况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);

疏忽 2022-09-11 15:48:50

针对第一个的三条sql语句:

alter table `table_name` add key idx_ownerid_cid(`ownerid`, `cid`);

第二个表的语句:

alter table `table_name` add key idx_cid_useridid(`cid`, `userid`);
alter table `table_name` add key idx_userid(`userid`);
依 靠 2022-09-11 15:48:50

第一种情况加这个索引就可以了

alter table `table_name` add key idx_cid_ownerid(`cid`,`ownerid`);

第二种情况楼上说得对。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文