zhangysh1995 最近的时间轴更新
zhangysh1995

zhangysh1995

🏢  清水湾大学
V2EX 第 198099 号会员,加入于 2016-10-25 02:25:14 +08:00
最近沉迷数据库,欢迎讨论相关问题,联系方式见个人网站。
根据 zhangysh1995 的设置,主题列表只有在你登录之后才可查看
二手交易 相关的信息,包括已关闭的交易,不会被隐藏
zhangysh1995 最近回复了
@reHuo 不是有啥问题才搬走的吧?我打算过段自己去看看
@reHuo 谢谢,好准确,兄弟住这附近的吗?
82 天前
回复了 jiqiren007 创建的主题 酷工作 [北京] Opera 北京招聘 Java 、golang 工程师
咦,愣住,Opera 居然国内也有业务
哪里有坑位呀?加个微信认识下~
82 天前
回复了 h2q 创建的主题 酷工作 [西安]RedHat 红帽西安开源团队招聘
西安人顶顶!感觉还不错,就是不太合适。
@moonvstod 这个不太靠谱的感觉。。。
106 天前
回复了 movq 创建的主题 程序员 这到底是什么 SQL 语句
楼主如果要知道更多一些关于 SQL 的理论知识,可以考虑看 https://db.inf.uni-tuebingen.de/team/TorstenGrust.html 这位教授的课程,youtube 有视频。CMU 的课程重点是数据库系统本身和现代系统应用,而不是 SQL 。
106 天前
回复了 movq 创建的主题 程序员 这到底是什么 SQL 语句
上面都没回答到点上。。
楼主应该问的是为什么我们在一个子语句使用了外层的 E.sid 。
这里需要知道表是否存在 index 。
在有 index 的情况下,第一条语句首先 cid 过滤,然后再比较 S.did = E.sid 的时候,可以直接使用 index,速度比第二条的 IN 要快非常多。因为有 E.sid 的值可以直接 hash index 看 S.sid 的数据置是否存在,只有 E.sid 数量的比较次数 O(E.sid)。
但是对于 IN 来说,它需要比每一条 S.sid 是否在 IN 后面的结果里面,没有 index 情况下 IN 的复杂度是 O(E.sid * S.sid),有 index 情况下 IN 的复杂度是 O(E.sid) 。
这里说的都是理论的复杂度,实际数据库实现中 IN 不一定可以用 index 。
另外一个区别是,因为第一条用了 scalar function, 在进行 cid 过滤的时候,满足的一行会直接送给子查询去判断 S.sid = E.sid 是否存在(这里是因为行变量的值可以传递到子查询),第二条是做完了过滤才去用 IN 查询,所以速度会变慢。
书店蹲着看,不是开玩笑
关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2703 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 12ms · UTC 13:41 · PVG 21:41 · LAX 06:41 · JFK 09:41
♥ Do have faith in what you're doing.