现在我有三个表:
表1:
pre_common_member_profile:
uid(用户的uid),
gender(性别),
birthyear(出生的年),
birthmonth(出生的月),
birthday(出生的日)
表2:
pre_home_friend:
uid(用户的uid),
fuid(加为好友的uid)
表3:
pre_home_friend_request:
fuid(发送好友请求的人),
uid(发送给谁)
要求:
查找表1,但是排除一定条件。
查询表1上面的五个字段,条件为uid=570并且uid不能等于(这两个条件:1、表2中uid=570的fuid的值。2、表3中的fuid=570的uid值。)
请尽量写出的语句效率高一点。
这个SQL不难写,给你分析下SQL的优化pre_home_friend 的 uid字段建立索引
pre_home_friend_request 的 fuid建立索引
pre_common_member_profile 的uid
是主键的话,应该是有索引的。修改UID的索引的排序方式为 desc ,默认是ASC的,你可以看下
使用NOT EXISTS 替换not in;
然后看SQL
的执行计划。看索引有没有生效
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。