Fork me on GitHub

OPTIMIZER_TRACE详解

TIPS 本文基于MySQL 8.0编写,理论支持MySQL 5.6及更高版本。 OPTIMIZER_TRACE是MySQL 5.6引入的一项跟踪功能,它可以跟踪优化器做出的各种决策(比如访问表的方法、各种开销计算、各种转换等),并将跟踪结果记录到 INFORMATION_SCHEMA.OPTIMIZER_TRACE 表中。此功能默认关闭,开启后,可分析如下语句: SELECT INSERT REPLACE UPDATE DELETE EXPLAIN SET DE...

全网最全 | MySQL EXPLAIN 完全解读

EXPLAIN作为MySQL的性能分析神器,读懂其结果是很有必要的,然而我在各种搜索引擎上竟然找不到特别完整的解读。都是只有重点,没有细节(例如type的取值不全、Extra缺乏完整的介绍等)。 所以,我肝了将近一个星期,整理了一下。这应该是全网最全面、最细致的EXPLAIN解读文章了,下面是全文。 文章比较长,建议收藏。 TIPS 本文基于MySQL 8.0编写,理论支持MySQL 5.0及更高版本。 EXPLAIN使用explain可用来分析SQL的执行计划。格...

MySQL建表语句转PostgreSQL建表语句全纪录

个人习惯用MySQL workbench EER数据建模,然后生成SQL语句到数据库中执行,这样表之间的关系比较直观。 像下面这样: 画图 正向工程,生成DDL语句: 忽略生成外键,以及外键索引啥的: 生成的DDL语句: 到数据库执行。 踩坑了最近团队微调,我被调整到另一个小团队。前两天接了个新需求,于是我依然使用MySQL workbench EER建模,结果好不容易建模完成了,却被告知这个项目用的数据库是PostgreSQL! 于是就面临如下几...