1.如果集群中配置了名为prototype的集群,则使用它作为prototype
2.如果数据源中存在prototypeDs的数据源,但是没有名为prototype的集群,则自动创建主数据源为prototypeDs的prototype集群
3.如果集群和数据源中没有prototype也没有prototypeDs,则选择数据源中第一个数据源类型为mysql类型的数据源作为prototype集群的主数据源,如果没有
4.上述都不适用的情况下,使用第一个数据源作为prototype的集群的主数据源
5.如果没有数据源,则不处理
mysql库下有一个虚拟表,dual表,只有一行X
mysql,information,performance_schema一般都是虚拟表,不可写入,不可删除,但可以使用表配置把他们覆盖掉(2021-12-30)
SHOW DATABASES
在Mycat中响应
SHOW DATABASES;
SHOW DATABASES LIKE 'xxxxx';//like暂时不支持模糊匹配
SHOW TABLES from xxxx LIKE ‘xxxx’;
在Mycat中响应
SHOW TABLES from xxxx;
SHOW TABLES from xxxx LIKE 'xxxx';//like暂时不支持模糊匹配
SHOW COLUMNS
在Mycat中响应
SHOW FULL FIELDS FROM `xxx`.`xxx`;
SHOW COLUMNS FIELDS FROM `xxx`.`xxx`;
SHOW TABLE STATUS
在Mycat中响应
show table status like 'tableName'
SHOW CREATE DATABASE
在Mycat中响应
show create database ddd
SHOW CEARE TABLE
在Mycat中响应
show create table ddd
SHOW ENGINES
Mycat自行响应
SHOW VARIABLES
SHOW WARNINGS
SHOW PROCEDURE STATUS
SHOW ERRORS
SHOW KEYS
SHOW CREATE FUNCTIONS
SHOW COLLATION
SHOW CHARACTER SET
SHOW STATUS
优先使用原型库处理,没有原型库则Mycat自行响应
使用原型库处理的意思是客户端发送到mycat中的此类SQL,mycat会把他们转发到原型库中处理,然后把响应转发到客户端,所以要求原型库具有处理show语句的能力,要求原型库有逻辑库逻辑表的结构的物理库物理表.但mycat在一些重要的sql,比如show databases/table中是自行响应的,而不重要不支持的部分转发到原型库mysql中处理,保证一定的兼容性又不严重依赖mysql.