MyCat查看执行计划

587 阅读1分钟

今天遇到需要在MyCat上查看SQL执行计划,实践之后记录一下:

一、MySql查看执行计划

## 使用explain关键字可以模拟优化器执行SQL查询语句。

EXPLAIN  SELECT COUNT(*) FROM TEST_EXPLAIN_MYSQL WHERE USER_ID = 123456789; 

二、MyCat查看执行计划,和单数据库语法不一样

## 1、查看路由信息DATA_NODE EXPLAIN + sql
EXPLAIN  SELECT COUNT(*) FROM TEST_EXPLAIN_MYCAT WHERE USER_ID = 123456789; 

## 2、explain2 datanode=数据节点 sql=sql语句
EXPLAIN2  datanode=dn389 SQL=SELECT COUNT(*) FROM TEST_EXPLAIN_MYCAT WHERE USER_ID = 123456789; 

三、COUNT函数的用法

1、COUNT函数的用法,主要用于统计表行数。主要用法有COUNT(*)COUNT(字段)COUNT(1)
2、在InnoDB中COUNT(*)COUNT(1)实现上没有区别,而且效率一样,但是COUNT(字段)需要进行字段的非NULL判断,所以效率会低一些。

因为COUNT(*)是SQL92定义的标准统计行数的语法,并且效率高,所以请直接使用COUNT(*)查询表的行数