dble_information 提供了一系列表格来描述dble内部一些元数据,可以通过管理端口连接dble之后,use dble_information之后查询内部的元数据信息。
以下是这些表格的详述:
支持表格的投影(select)
支持表格的选择(where)
支持表格的连接(join)
支持表格的非关联where子查询
支持聚合运算
支持排序
支持标量函数
支持 use dble_information
支持 show tables [ like ]
支持 desc|describe table xxx
支持 show databases; 注意和show @@database不同
部分表格支持INSERT/UPDATE/DELETE
-
表名:version
-
含义:dble版本号
-
字段:
列名 | 主键 | 注释 |
---|---|---|
version | true | 版本号 |
- 数据行:
- dble的版本号
-
表名:dble_variables
-
含义:全局设置
-
字段:
列名 | 主键 | 注释 |
---|---|---|
variable_name | true | 变量名 |
variable_value | 变量值 | |
comment | 说明 | |
read_only | 是否只读 |
- 数据行:
- version_comment: 版本信息 - isOnline: 在线状态 - heap_memory_max: 堆内存的最大限制(mb) - direct_memory_max: 通过-XX:MaxDirectMemorySize设置的值 附加项:show @@sysparam中的所有配置
-
表名:dble_status
-
含义:全局状态
-
字段:
列名 | 主键 | 注释 |
---|---|---|
variable_name | true | 变量名 |
variable_value | 变量值 | |
comment | 说明 |
- 数据行:
- uptime: dble启动的时间长度(秒) - current_timestamp: dble系统的当前时间 - startup_timestamp: dble系统的启动时间 - heap_memory_max: 堆内存的最大限制 - heap_memory_used: 堆内存的使用量 - heap_memory_total: 堆内存的总量 - config_reload_timestamp: 上次config加载时间 - direct_memory_max: 通过-XX:MaxDirectMemorySize设置的值 - direct_memory_pool_size: 内存池的大小,等于bufferpoolpagesize和bufferpoolpagenumber的乘积 - direct_memory_pool_used: 已经使用的内存池中的directmemory内存 - questions: 请求数 - transactions: 事务数
-
表名:dble_thread_pool
-
含义:线程池使用情况
-
字段:
列名 | 主键 | 注释 |
---|---|---|
name | true | 线程池名称 |
pool_size | 实际线程池大小 | |
core_pool_size | 理论线程池大小(和所设置值保持一致) | |
active_count | 活跃的线程数 | |
waiting_task_count | 等待消费的线程数(如果值较大, 需增大处理线程数) |
-
数据行: 略
-
注意:这里的 active_count/waiting_task_count 都是只统计 线程数 的变化。但是,dble 针对某些线程池(BusinessExecutor和writeToBackendExecutor)采用了常驻线程的实现方式,故线程数不变,使得这些字段不能反映 "是否消费了任务" 以及 "消费了多少了个任务" ,如需获得线程池执行任务的统计情况,可以考虑使用dble_thread_pool_task表。
-
表名:dble_thread_pool_task
-
含义:线程池的任务消费情况
-
字段:
列名 | 主键 | 注释 |
---|---|---|
name | true | 线程池名称 |
pool_size | 实际线程池大小 | |
active_task_count | 正在处理中的任务数 | |
task_queue_size | 等待消费的任务数(如果值较大, 需增大处理线程数) | |
completed_task | 已完成的任务数量 | |
total_task | 总共任务数量 |
- 数据行: 略
-
表名:dble_processor
-
含义:processor信息
-
字段:
列名 | 主键 | 注释 |
---|---|---|
name | true | 名称 |
type | 类型(session/backend) | |
conn_count | 其负责处理的连接数 | |
conn_net_in | 网络接收流量 (线程不安全) | |
conn_net_out | 网络发送流量 (线程不安全) |
- 数据行:略
-
表名:dble_sharding_node
-
含义:sharding_node配置及状态
-
字段:
列名 | 主键 | 注释 |
---|---|---|
name | true | 名称 |
db_group | db_group名 | |
db_schema | db_schema名 | |
pause | 是否暂停流量 |
- 数据行:略
-
表名:dble_db_group
-
含义:db_group配置及状态
-
字段:
列名 | 主键 | 注释 |
---|---|---|
name | true | 名称 |
heartbeat_stmt | 心跳用的sql语句 | |
heartbeat_timeout | 心跳超时时间(秒) | |
heartbeat_retry | 心跳重试次数 | |
rw_split_mode | 读写分离模式 | |
delay_threshold | 延迟时间 | |
disable_ha | 是否停用高可用 | |
active | 是否落盘 |
- 数据行:略
-
表名:dble_db_instance
-
含义:db_instance配置及状态
-
字段:
列名 | 主键 | 注释 |
---|---|---|
name | true | 名称 |
db_group | true | db_group的主键 |
addr | 地址 | |
port | 端口 | |
primary | 是否是主节点 | |
user | 账号 | |
password_encrypt | 加密后的密码 | |
encrypt_configured | 是否启用加密 | |
active_conn_count | 当前活动的后端连接数量 | |
idle_conn_count | 当前空闲的后端连接数量 | |
read_conn_request | 获取读连接的次数 | |
write_conn_request | 获取写连接的次数 | |
disabled | 是否被标记为disabled | |
last_heartbeat_ack_timestamp | 上次收到心跳回复时间戳 | |
last_heartbeat_ack | init/ok/error/timeout | |
heartbeat_status | idle/checking | |
heartbeat_failure_in_last_5min | 过去5分钟, 心跳失败的次数 | |
min_conn_count | 最小后端连接数量 | |
max_conn_count | 最大后端连接数量 | |
read_weight | 读负载 | |
id | id | |
connection_timeout | 获取连接的超时时间 | |
connection_heartbeat_timeout | 空闲连接检测后的超时时间 | |
test_on_create | 连接创建后是否检测有效性 | |
test_on_borrow | 连接被借出后是否检测有效性 | |
test_on_return | 连接被返回时是否检测有效性 | |
test_while_idle | 连接空闲时是否检测有效性 | |
time_between_eviction_runs_millis | 扩缩容线程的检测周期 | |
evictor_shutdown_timeout_millis | 扩缩容线程停止的超时时间 | |
idle_timeout | 连接空闲多久之后被回收 | |
heartbeat_period_millis | 连接池的心跳周期 | |
flow_high_level | 流量控制的连接高水位 | |
flow_low_level | 流量控制的连接低水位 |
- 数据行:略
-
表名:dble_schema
-
含义:schema配置
-
字段:
列名 | 主键 | 注释 |
---|---|---|
name | true | 版本号 |
sharding_node | sharding_node表的主键 | |
function | 拆分规则 | |
sql_max_limit | 最大返回结果集限制 |
- 数据行:略
-
表名:session_variables
-
含义:前端连接变量
-
字段:
列名 | 主键 | 注释 |
---|---|---|
session_conn_id | true | 前端连接id |
variable_name | true | 变量名 |
variable_value | 变量名值 | |
variable_type | 变量类型(sys/user) |
- 数据行:
已知变量 : - tx_read_only:只读事务(mysql8.0) - transaction_read_only:只读事务(mysql5.7) - character_set_client:字符集 - collation_connection:字符集 - character_set_results:字符集 - tx_isolation_level:隔离级别(mysql8.0) - transaction_isolation:隔离级别 (mysql5.7) - autocommit:自动提交 - 其他被特别设置的变量
-
表名:session_connections
-
含义:前端连接
-
字段:
列名 | 主键 | 注释 |
---|---|---|
session_conn_id | true | 前端连接id |
remote_addr | 远端地址 | |
remote_port | 远端端口 | |
local_port | 本地端口 | |
processor_id | 负责处理连接的处理器id | |
user | 登录用户名 | |
tenant | 租户 | |
schema | 当前schema? (分库分表/读写分离 功能不同) | |
sql | 最后运行的sql(如果长度大于1024个字符,将会被截断为1024) | |
sql_execute_time | 已完成sql的响应时间, 或未完成的sql的持续时间(单位为ms)(由于实现方式的原因,可能出现正负20ms的误差) | |
sql_start_timestamp | sql的开始时间戳 | |
sql_stage | 运行的当前阶段,结束时会变成finished | |
conn_net_in | 网络接收流量 | |
conn_net_out | 网络发送流量 | |
conn_estab_time | 连接建立时长(毫秒) | |
conn_recv_buffer | 接收缓冲区大小(字节) (若值较大, 说明正在接收较大的数据包, 或者接收的数据包没有及时被消费) | |
conn_send_task_queue | 网络发送任务队列(个) (若值较大, 说明没有线程对数据包进行及时发送) | |
conn_recv_task_queue | 网络接收任务队列(个) (若值较大, 说明没有线程对数据包进行及时消费) | |
in_transaction | 该连接是否在事务中 | |
xa_id | 该连接中的xid, 如果存在具体值,说明处于XA事务中 | |
entry_id | 入口id |
- 数据行:略
-
表名:backend_variables
-
含义:后端连接变量
-
字段:
列名 | 主键 | 注释 |
---|---|---|
backend_conn_id | true | 后端连接id |
variable_name | true | 变量名 |
variable_value | 变量值 | |
variable_type | 变量类型(sys/user) |
- 数据行:
已知行: - tx_read_only, 只读事务(mysql8.0) - transaction_read_only, 只读事务(mysql5.7) - character_set_client, 字符集 - collation_connection, 字符集 - character_set_results, 字符集 - tx_isolation_level, 隔离级别(mysql8.0) - transaction_isolation, 隔离级别(mysql5.7) - autocommit, 自动提交 - 其他被特别设置的变量
-
表名:backend_connections
-
含义:后端连接
-
字段:
列名 | 主键 | 注释 |
---|---|---|
backend_conn_id | true | 后端连接id |
db_group_name | db组 | |
db_instance_name | db实例 | |
remote_addr | 远端地址 | |
remote_port | 远端端口 | |
remote_processlist_id | 远端的mysql线程id | |
local_port | 本地端口 | |
processor_id | 负责处理连接的处理器id | |
user | 登录用户名 | |
schema | 当前schema? (分库分表/读写分离 功能不同) | |
session_conn_id | 与之对应的前端连接id, 未使用时可为空 | |
sql | 最后运行的sql(如果长度大于1024个字符,将会被截断为1024) | |
sql_execute_time | 响应时间或者未完成sql持续时间(由于实现方式的原因,可能出现正负20ms的误差) | |
mark_as_expired_timestamp | 该连接被标记为退休的时间, 退休连接将不返还连接池, 当前任务结束后即关闭 | |
conn_net_in | 网络接收流量 | |
conn_net_out | 网络发送流量 | |
conn_estab_time | 连接建立时长(秒) | |
borrowed_from_pool | 是否从连接池中取出使用(这列可以按照当前连接池属性扩展为多列) | |
state | 后端连接在连接池中的状态,比如是否空闲等 | |
conn_recv_buffer | 接收缓冲区大小(字节) (若值较大, 说明正在接收较大的数据包, 或者接收的数据包没有及时被消费) | |
conn_send_task_queue | 网络发送任务队列(个) (若值较大, 说明没有线程对数据包进行及时发送) | |
used_for_heartbeat | 该连接是否被用于心跳检测 | |
conn_closing | 该连接是否正在被关闭 | |
xa_status | 该连接的xa状态 | |
in_transaction | 该连接是否在事务中 |
- 数据行:略
-
表名:dble_table
-
含义:table基本信息
-
字段:
列名 | 主键 | 注释 |
---|---|---|
id | true | 自增序列(配置中的table前缀为C、schema配置单个mysql节点中的table的前缀为M、schema配置多个mysql节点中的table的前缀为FC) |
name | 名称 | |
schema | schema名称 | |
max_limit | 最大返回结果集限制 | |
type | global/single/sharding/child/no sharding |
-
逻辑主键
name、schema -
数据行:略
-
表名:dble_global_table
-
含义:全局表信息
-
字段:
列名 | 主键 | 注释 |
---|---|---|
id | true | dble_table的id字段 |
check | 是否开启一致性检查 | |
checkClass | 开启一致性检查的class | |
cron | 开启一致性检查的定时任务 |
- 数据行:略
-
表名:dble_sharding_table
-
含义:分片表信息
-
字段:
列名 | 主键 | 注释 |
---|---|---|
id | true | dble_table的id字段 |
increment_column | 全局序列 | |
sharding_column | 拆分列 | |
sql_required_sharding | sqlRequiredSharding配置 | |
algorithm_name | 拆分算法的名称 |
- 数据行:略
-
表名:dble_child_table
-
含义:分片子表信息
-
字段:
列名 | 主键 | 注释 |
---|---|---|
id | true | dble_table的id字段 |
parent_id | 父表的id | |
increment_column | 全局序列 | |
join_column | 关联列 | |
paren_column | 父表的列 |
- 数据行:略
-
表名:dble_table_sharding_node
-
含义:表和sharding_node关联信息
-
字段:
列名 | 主键 | 注释 |
---|---|---|
id | true | dble_table的id字段 |
sharding_node | true | 分片节点 |
order | sharding_node的顺序(对拆分表意义重大,从0开始计数) |
- 数据行:略
-
表名:dble_algorithm
-
含义:拆分算法的配置
-
字段:
列名 | 主键 | 注释 |
---|---|---|
name | true | 名称 |
key | true | 属性名称 |
value | 属性值 | |
is_file | mapfile的显示格式(true:file,false:content)有些算法由于使用了mapfile,可能导致属性过多,这种情况最多展示1024字节,超过则显示文件名称 |
- 数据行:略
-
表名:dble_entry
-
含义:登录入口表(目前是用户或者用户+租户的模式)
-
字段:
列名 | 主键 | 注释 |
---|---|---|
id | true | 自增序列 |
type | 入口类型(username/conn_attr), 通过用户名识别或通过连接属性识别 | |
user_type | 是否为管理用户/读写分离用户/sharding用户 | |
username | 用户名 | |
password_encrypt | 密码 | |
encrypt_configured | 原本密码是否加密 | |
conn_attr_key | 连接属性键 ,目前支持tenant或者空 | |
conn_attr_value | 连接属性值 | |
white_ips | 白名单 | |
readonly | 是否只读 (读写分离用户不支持,填写-) | |
max_conn_count | 最大连接数限制 | |
blacklist | 黑名单 |
- 数据行:略
-
表名:dble_entry_schema
-
含义:分库用户对应的schema的关系表
-
字段:
列名 | 主键 | 注释 |
---|---|---|
id | true | dble_entry表的id |
schema | true | 虚拟schema的名字 |
- 数据行:略
-
表名:dble_rw_split_entry
-
含义:分库用户对应的schema的关系表
-
字段:
列名 | 主键 | 注释 |
---|---|---|
id | true | 自增序列(需要实现) |
type | 入口类型(username/conn_attr), 通过用户名识别或通过连接属性识别 | |
username | 用户名 | |
password_encrypt | 密码 | |
encrypt_configured | 是否启用加密 | |
conn_attr_key | 连接属性键 ,目前支持tenant或者空 | |
conn_attr_value | 连接属性值 | |
white_ips | 白名单 | |
max_conn_count | 最大连接数限制 | |
blacklist | 黑名单 | |
db_group | 对应的db_group的名字 |
-
逻辑主键
username、conn_attr_key、conn_attr_value -
数据行:略
-
表名:dble_entry_table_privilege
-
含义:分库用户的对于表的privilege权限
-
字段:
列名 | 主键 | 注释 |
---|---|---|
id | true | dble_entry表的id |
schema | true | 对应的schema的名字 |
table | true | 对应的table的名字 |
exist_metas | 对应table的元数据在dble中是否存在 | |
insert | 是否允许insert | |
update | 是否允许update | |
select | 是否允许select | |
delete | 是否允许delete | |
is_effective | 配置是否生效 |
- 数据行:略
-
表名:dble_blacklist
-
含义:黑名单信息
-
字段:
列名 | 主键 | 注释 |
---|---|---|
name | true | 名称 |
property_key | true | 黑名单属性key |
property_value | 黑名单属性value | |
user_configured | 是否是用户配置的 |
- 数据行:略
-
表名:processlist
-
含义:查看前端连接和后端连接对应关系(若前端连接没有对应的后端连接,显示NULL)
-
字段:
列名 | 主键 | 注释 |
---|---|---|
front_id | true | 前端连接id |
db_instance | 对应后端的实例name | |
mysql_id | true | 后端连接对应的 mysql 线程id |
user | 用户名 | |
front_host | 客户端主机名 | |
mysql_db | 后端连接默认数据库,来自于 mysql 'show processlist' 字段 db | |
command | mysql线程正在执行的指令类型,来自于 mysql 'show processlist' 字段 command | |
time | mysql线程处于当前state的时间,来自于 mysql 'show processlist' 字段 time | |
state | mysql线程执行状态,来自于 mysql 'show processlist' 字段 state | |
info | mysql线程执行语句,来自于 mysql 'show processlist' 字段 info |
- 数据行:略(类似show @@processlist)
-
表名:dble_thread_usage
-
含义:线程使用率
-
字段:
列名 | 主键 | 注释 |
---|---|---|
thread_name | true | 线程名称 |
last_quarter_min | 最近15s平均使用率 | |
last_minute | 最近1min平均使用率 | |
last_five_minute | 最近5min平均使用率 |
- 数据行:略(类似show @@thread_used;)
-
表名:dble_reload_status
-
含义:最近的reload信息
-
字段:
列名 | 主键 | 注释 |
---|---|---|
index | true | reload对应的编号,能与日志中的[ RL ]日志编号相对应 |
cluster | 当前dble使用的集群方式 | |
reload_type | 最近的reload的类型 reload_matadata/reload_all/manager_insert/manager_update/mamager_delete | |
reload_status | 最近一次reload的执行状状态not_reloading/self_reload/meta_reload/waiting_others | |
last_reload_start | 起始时间 | |
last_reload_end | 结束时间 | |
trigger_type | 触发类型local_command/cluster_notify | |
end_type | 结束原因 |
- 数据行:略(类似show @@reload_status)
-
表名:dble_xa_session
-
含义:后端重试xa事务信息
-
字段:
列名 | 主键 | 注释 |
---|---|---|
front_id | true | 前端连接id |
xa_id | xa事务id | |
xa_state | xa事务状态 | |
sharding_node | true | xa提交失败的sharding_node名称,需要展开成多行 |
- 数据行:略(show @@session.xa)
-
表名:dble_ddl_lock
-
含义:当前dble内部未释放的ddl
-
字段:
列名 | 主键 | 注释 |
---|---|---|
schema | true | schema名称 |
table | true | table名称 |
sql | ddl sql语句 |
- 数据行:略(类似show @@ddl)
-
表名:sql_statistic_by_frontend_by_backend_by_entry_by_user
-
含义:统计前端业务用户下发sql至分片(后端节点)的执行情况
-
字段:
列名 | 主键 | 注释 |
---|---|---|
entry | true | dble_entry表的id |
user | true | 业务用户(不包含管理端用户) |
frontend_host | true | 登录的ip地址 |
backend_host | true | 后端服务的ip地址 |
backend_port | true | 后端服务的端口 |
sharding_node | true | 分片节点 |
tx_count | false | 事务次数 |
tx_rows | false | 事务中影响或者检索的行数 |
tx_time | false | 事务耗时 |
sql_insert_count | false | insert命令执行的次数 |
sql_insert_rows | false | insert返回的影响行数 |
sql_insert_time | false | insert的耗时 |
sql_update_count | false | update命令执行的次数 |
sql_update_rows | false | update返回的影响行数 |
sql_update_time | false | update的耗时 |
sql_delete_count | false | delete命令执行的次数 |
sql_delete_rows | false | delete返回的影响行数 |
sql_delete_time | false | delete的耗时 |
sql_select_count | false | select命令执行的次数 |
sql_select_rows | false | dble获取后端节点返回的行数 |
sql_select_time | false | select的耗时 |
last_update_time | false | 此条记录的更新时间 |
- 数据如:
mysql> select * from sql_statistic_by_frontend_by_backend_by_entry_by_user;
+-------+------+---------------+--------------+--------------+---------------+-------------+----------+---------+---------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+-------------------------+
| entry | user | frontend_host | backend_host | backend_port | sharding_node | db_instance | tx_count | tx_rows | tx_time | sql_insert_count | sql_insert_rows | sql_insert_time | sql_update_count | sql_update_rows | sql_update_time | sql_delete_count | sql_delete_rows | sql_delete_time | sql_select_count | sql_select_rows | sql_select_time | last_update_time |
+-------+------+---------------+--------------+--------------+---------------+-------------+----------+---------+---------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+-------------------------+
| 3 | test | 127.0.0.1 | 10.186.63.8 | 24801 | dn1 | instanceM1 | 1 | 1 | 15293 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 15293 | 2021-07-09 11:18:10.525 |
| 3 | test | 127.0.0.1 | 10.186.63.7 | 24801 | dn2 | instanceM2 | 1 | 3 | 13819 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 3 | 13819 | 2021-07-09 11:18:10.525 |
+-------+------+---------------+--------------+--------------+---------------+-------------+----------+---------+---------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+-------------------------+
2 rows in set (0.00 sec)
-
表名:sql_statistic_by_table_by_user_by_entry
-
含义:统计前端业务用户下发sql各个表的情况
-
字段:
列名 | 主键 | 注释 |
---|---|---|
entry | true | dble_entry表的id |
user | true | 业务用户(不包含管理端用户) |
table | true | 表 |
sql_insert_count | false | insert命令执行的次数 |
sql_insert_rows | false | insert返回的影响行数 |
sql_insert_time | false | insert的耗时 |
sql_update_count | false | update命令执行的次数 |
sql_update_rows | false | update返回的影响行数 |
sql_update_time | false | update的耗时 |
sql_delete_count | false | delete命令执行的次数 |
sql_delete_rows | false | delete返回的影响行数 |
sql_delete_time | false | delete的耗时 |
sql_select_count | false | select命令执行的次数 |
sql_select_examined_rows | false | dble获取后端节点返回的行数 |
sql_select_rows | false | 发送前端的行数 |
sql_select_time | false | select的耗时 |
last_update_time | false | 此条记录的更新时间 |
- 数据如:
mysql> select * from sql_statistic_by_table_by_user_by_entry;
+-------+------+---------------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+--------------------------+-----------------+-------------------------+
| entry | user | table | sql_insert_count | sql_insert_rows | sql_insert_time | sql_update_count | sql_update_rows | sql_update_time | sql_delete_count | sql_delete_rows | sql_delete_time | sql_select_count | sql_select_rows | sql_select_examined_rows | sql_select_time | last_update_time |
+-------+------+---------------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+--------------------------+-----------------+-------------------------+
| 3 | test | testdb.tb_jump_hash | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 4 | 4 | 290440 | 2021-07-09 11:18:10.536 |
| 3 | test | null | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 2131 | 2021-07-09 11:09:30.755 |
+-------+------+---------------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+-----------------+------------------+-----------------+--------------------------+-----------------+-------------------------+
2 rows in set (0.01 sec)
-
表名:sql_statistic_by_associate_tables_by_entry_by_user
-
含义:统计前端业务用户下发sql关联表的情况
-
字段:
列名 | 主键 | 注释 |
---|---|---|
entry | true | dble_entry表的id |
user | true | 业务用户(不包含管理端用户) |
tables | true | 关联的表 |
sql_select_count | false | select命令执行的次数 |
sql_select_examined_rows | false | dble获取后端节点返回的行数 |
sql_select_rows | false | 发送前端的行数 |
sql_select_time | false | select的耗时 |
last_update_time | false | 此条记录的更新时间 |
- 数据如:
mysql> select * from sql_statistic_by_associate_tables_by_entry_by_user;
+-------+------+-----------------------------------+------------------+-----------------+--------------------------+-----------------+-------------------------+
| entry | user | associate_tables | sql_select_count | sql_select_rows | sql_select_examined_rows | sql_select_time | last_update_time |
+-------+------+-----------------------------------+------------------+-----------------+--------------------------+-----------------+-------------------------+
| 3 | test | testdb.tabler,testdb.tb_jump_hash | 1 | 168 | 46 | 92004 | 2021-07-09 11:20:16.392 |
+-------+------+-----------------------------------+------------------+-----------------+--------------------------+-----------------+-------------------------+
1 row in set (0.00 sec)
-
表名:sql_log
-
含义:采样统计前端业务用户下发sql
-
字段:
列名 | 主键 | 注释 |
---|---|---|
sql_id | true | sql id |
sql_stmt | false | SQL语句(最长保留1024个字节) |
sql_digest | false | SQL语句digest(最长保留1024个字节) |
sql_type | false | SQL类型 |
tx_id | true | 事务ID(仅作用与统计的事务ID,与业务中实际事务ID无关) |
entry | false | dble_entry表的id |
user | false | 用户名 |
source_host | false | 来源IP |
source_port | false | 来源port |
rows | false | 返回前端的行数 |
examined_rows | false | 从后端抽取的行数 |
start_time | false | 开始时间,单位纳秒 |
duration | false | 持续时间,单位毫秒 |
- 数据如:
mysql> select * from sql_log;
+--------+----------------------------------+----------------------------------+----------+-------+-------+------+-------------+-------------+------+---------------+---------------------+----------+
| sql_id | sql_stmt | sql_digest | sql_type | tx_id | entry | user | source_host | source_port | rows | examined_rows | start_time | duration |
+--------+----------------------------------+----------------------------------+----------+-------+-------+------+-------------+-------------+------+---------------+---------------------+----------+
| 1 | show databases | show databases | Show | 1 | 3 | test | 127.0.0.1 | 8066 | 7 | 0 | 2021-07-09 11:09:30 | 7919460 |
| 2 | show tables | show tables | Show | 2 | 3 | test | 127.0.0.1 | 8066 | 32 | 0 | 2021-07-09 11:09:30 | 14972767 |
| 3 | select @@version_comment limit 1 | SELECT @@version_comment LIMIT ? | Select | 3 | 3 | test | 127.0.0.1 | 8066 | 1 | 0 | 2021-07-09 11:09:30 | 2131628 |
| 4 | show tables | show tables | Show | 4 | 3 | test | 127.0.0.1 | 8066 | 32 | 0 | 2021-07-09 11:09:34 | 1428683 |
+--------+----------------------------------+----------------------------------+----------+-------+-------+------+-------------+-------------+------+---------------+---------------------+----------+
4 rows in set (0.04 sec)
-
表名:sql_log_by_tx_by_entry_by_user
-
含义:sql log汇总统计
-
字段:
列名 | 主键 | 注释 |
---|---|---|
tx_id | false | 事务ID(仅作用与统计的事务ID,与业务中实际事务ID无关) |
entry | false | dble_entry表的id |
user | false | 用户名 |
source_host | false | 来源IP |
source_port | false | 来源port |
sql_ids | false | 事务包含的sql_id的聚合(最长保留1024个字节) |
sql_exec | false | 事务包含的SQL的个数 |
tx_duration | false | 事务经历的时间 |
busy_time | false | 事务内SQL的总运行时间 |
examined_rows | false | 从后端抽取的行数 |
- 数据如:
mysql> select * from sql_log_by_tx_by_entry_by_user;
+-------+-------+------+-------------+-------------+---------+----------+-------------+-----------+---------------+
| tx_id | entry | user | source_host | source_port | sql_ids | sql_exec | tx_duration | busy_time | examined_rows |
+-------+-------+------+-------------+-------------+---------+----------+-------------+-----------+---------------+
| 1 | 3 | test | 127.0.0.1 | 8066 | 1 | 1 | 7919460 | 7919460 | 0 |
| 2 | 3 | test | 127.0.0.1 | 8066 | 2 | 1 | 14972767 | 14972767 | 0 |
| 3 | 3 | test | 127.0.0.1 | 8066 | 3 | 1 | 2131628 | 2131628 | 0 |
| 4 | 3 | test | 127.0.0.1 | 8066 | 4 | 1 | 1428683 | 1428683 | 0 |
+-------+-------+------+-------------+-------------+---------+----------+-------------+-----------+---------------+
4 rows in set (0.05 sec)
-
sql_log_by_digest_by_entry_by_user
-
含义:sql log汇总统计
-
字段:
列名 | 主键 | 注释 |
---|---|---|
sql_digest | false | sql语句digest |
entry | false | dble_entry表的id |
user | false | 用户名 |
exec | false | 相同sql digest的sql语句执行次数 |
duration | false | sql语句的执行总时间 |
rows | false | 返回前端的行数 |
examined_rows | false | 从后端抽取的行数 |
avg_duration | false | 平均sql语句执行时间 |
- 数据如:
mysql> select * from sql_log_by_digest_by_entry_by_user;
+----------------------------------+-------+------+------+----------+------+---------------+--------------+
| sql_digest | entry | user | exec | duration | rows | examined_rows | avg_duration |
+----------------------------------+-------+------+------+----------+------+---------------+--------------+
| SELECT @@version_comment LIMIT ? | 3 | test | 1 | 2131628 | 1 | 0 | 2131628.0000 |
| show databases | 3 | test | 1 | 7919460 | 7 | 0 | 7919460.0000 |
| show tables | 3 | test | 2 | 16401450 | 64 | 0 | 714341.5000 |
+----------------------------------+-------+------+------+----------+------+---------------+--------------+
3 rows in set (0.02 sec)
-
sql_log_by_tx_digest_by_entry_by_user
-
含义:sql log汇总统计
-
字段:
列名 | 主键 | 注释 |
---|---|---|
tx_digest | false | sql_digest的聚合 |
exec | false | 相同tx_digest事务的执行次数 |
entry | false | dble_entry表的id |
user | false | 用户名 |
sql_exec | false | 事务包含的SQL的执行次数 |
source_host | false | 来源IP |
source_port | false | 来源port |
sql_ids | false | 事务包含的sql_id的聚合(最长保留1024个字节) |
tx_duration | false | 事务经历的时间 |
busy_time | false | 事务内SQL的总运行时间 |
examined_rows | false | 从后端抽取的行数 |
- 数据如:
mysql> select * from sql_log_by_tx_digest_by_entry_by_user;
+----------------------------------+------+------+-------+----------+-------------+-------------+---------+-------------+-----------+---------------+
| tx_digest | exec | user | entry | sql_exec | source_host | source_port | sql_ids | tx_duration | busy_time | examined_rows |
+----------------------------------+------+------+-------+----------+-------------+-------------+---------+-------------+-----------+---------------+
| SELECT @@version_comment LIMIT ? | 1 | test | 3 | 1 | 127.0.0.1 | 8066 | 3 | 2131628 | 2131628 | 0 |
| show databases | 1 | test | 3 | 1 | 127.0.0.1 | 8066 | 1 | 7919460 | 7919460 | 0 |
| show tables | 2 | test | 3 | 2 | 127.0.0.1 | 8066 | 2,4 | 16401450 | 16401450 | 0 |
+----------------------------------+------+------+-------+----------+-------------+-------------+---------+-------------+-----------+---------------+
3 rows in set (0.03 sec)
-
表名:dble_config
-
含义:当前dble内存中的配置信息(db、sharding、user、sequence)
-
字段:
列名 | 主键 | 注释 |
---|---|---|
content | false | db、sharding、user、sequence的配置信息(json字符串) |
- 数据行:略
- 使用方式见: dble_config表
-
表名:dble_xa_recover
-
含义:查看所有存活的主节点下XA情况
-
字段:
列名 | 主键 | 注释 |
---|---|---|
dbgroup | false | 节点组 |
instance | false | 节点名 |
ip | false | 节点ip |
port | false | 节点端口 |
formatid | false | mysql中xa_recover表中的formatid字段 |
gtrid_length | false | mysql中xa_recover表中的gtrid_length字段 |
bqual_length | false | mysql中xa_recover表中的bqual_length字段 |
data | false | mysql中xa_recover表中的data字段 |
- 数据行:略
-
表名:dble_flow_control
-
含义:查看所有连接的流量控制状态
-
字段:
列名 | 主键 | 注释 |
---|---|---|
connection_type | true | 连接的类型,固定为MySQLConnection/ServerConnection其中之一 |
connection_id | true | 连接在dble中的ID信息,可以通过ID查找日志 |
connection_info | false | 接详细信息,使用端口,IP地址,用户,MySQL中的连接ID等 |
writing_queue_bytes | false | 当前连接的准备写出的队列里积压的字节数 |
reading_queue_bytes | false | 当前连接的已经读取的队列里积压的字节数,前端连接不支持此功能,恒为null |
flow_controlled | false | 当前连接是否处于被流控的状态 |
- 数据行:略
为满足读写分离的场景,对部分配置表格支持增删改功能
INSERT
[INTO] tbl_name
[(col_name [, col_name] ...)]
{VALUES | VALUE} (value_list) [, (value_list)] ...
INSERT
[INTO] tbl_name
SET assignment_list
注意:
- 不支持 INSERT ...SELECT ,LOW_PRIORITY,DELAYED,HIGH_PRIORITY,IGNORE,ON DUPLICATE KEY UPDATE,PARTITION
UPDATE table_reference
SET assignment_list
WHERE where_condition
value:
{expr | DEFAULT}
assignment:
col_name = value
assignment_list:
assignment [, assignment]
注意:
- 不支持多表更新
- 不支持子查询
- 不支持修改主键(物理主键、逻辑主键)
- 不支持LOW_PRIORITY,IGNORE,ORDER BY,LIMIT ,PARTITION
- 不支持不带条件(where)
- 不支持别名
DELETE FROM tbl_name WHERE where_condition
注意:
- 不支持多表删除
- 不支持子查询
- 不支持LOW_PRIORITY,IGNORE,ORDER BY,LIMIT ,PARTITION
- 不支持不带条件(where)
- 不支持别名
TRUNCATE [TABLE] tbl_name
注意:
- 暂无
- 不可写列:active
- 不可写列:active_conn_count、idle_conn_count、read_conn_request、write_conn_request、last_heartbeat_ack_timestamp、last_heartbeat_ack、heartbeat_status、heartbeat_failure_in_last_5min
注:由于dble_db_group、dble_db_instance的结构特殊性(整体存储在配置文件db.xml文件中),所以插入一个新的Mysql实例组时需先插入dble_db_group,紧接着插入相对应的dble_db_instance,才能保证实例组准确落盘;如果不遵循该插入顺序会导致数据不一致等未知问题
- 不可写列:id、blacklist、type
- 只支持UPDATE,不支持INSERT/DELETE
- 只能更新列:core_pool_size,其余列不可更新
注:
1、由于JDK原生线程池(ThreadPoolExecutor)扩缩容机制问题,新建的线程和即将被回收的线程需要一定的时机才会被处理,所以设置core_pool_size后可能并不是立即生效,有一定的延迟性
2、不支持调整AIO场景下的processors 、backendProcessors参数,只支持NIO场景下的processors($_NIO_REACTOR_FRONT-) 、backendProcessors($_NIO_REACTOR_BACKEND-)参数
3、避免在高并发的时候调整线程池数目
sql_statistic_by_frontend_by_backend_by_entry_by_user、sql_statistic_by_table_by_user_by_entry、sql_statistic_by_associate_tables_by_entry_by_user、 sql_log