作者回复: “不是执行器”这一点,你分析得很好😄
作者回复: MySQL确实在设计上受Oracle影响颇深。就是这样哈,分析器做了这个工作。另外有评论里面举例高性能MySQL 里面概念的同学、说正文里面已经暗示答案的同学,远程点赞了哈😄😄 就喜欢你们这么机智的回答👍🏿
作者回复: 这个后面专门有一篇《要不要用memory引擎》会说明,先说结论,redis很有必要😄
作者回复: 有些时候,SQL语句要操作的表不只是SQL字面上那些。比如如果有个触发器,得在执行器阶段(过程中)才能确定。优化器阶段前是无能为力的
作者回复: 嗯嗯,Trace 日志是个好东西
作者回复: 这个是一个安全方面的考虑。你想想一个用户如果没有查看这个表的权限,你是会告诉他字段不对还是没权限?如果告诉他字段不对,其实给的信息太多了,因为没权限的意思还包含了:没权限知道字段是否存在😄
作者回复: 非常好👍🏿
作者回复: 是好建议,下一篇开始这么执行哈😄
作者回复: 最后是“等待新的请求”哈,其他部分很不错呢
作者回复: 被…被发现了😺
作者回复: 哈哈,很不错,有意思啊👍
作者回复: 很好的总结。
1. 实际上肯定是要判断出是select语句, 但是之后的解析都没做哈。 要理解成“包含在内”也可以。
2. Show wanings不会把重写后的显示出来,只是格式化后
3. 清空缓存失败这个不太可能,这个内部结构的操作没什么依赖