- 博客(207)
- 资源 (1)
- 收藏
- 关注
原创 [Mycat2]分库分表中间件Join下推规则
Join下推author:chenjunwenqq:294712221This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.单表与单表只涉及单表与单表之间的join,只要它们的存储节点相同,就可以下推任意表与全局表涉及任意表与全局表之间的left/inner join都可以下推相同数据分布关系(ER关系)涉及分片表之间的分片算法的数据分布
2021-11-17 13:19:25
696
1
原创 [Mycat2]Calcite提取谓词例子
/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to you un
2021-08-15 23:09:48
363
原创 [Mycat2]索引字段分析-2021-4-21
author:chenjunwen 2021-4-21This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.Mycat2是分库分表型数据库(中间件),具有逻辑库,逻辑表概念,其中对于分片表类型,使用特定的规则组织'行数据'在多个物理表中存储.而SQL查询分片表的时候,正确使用谓词,Mycat2分析出仅需扫描的物理表,则可在执行阶段大大减少需要使用的连接,IO..
2021-04-22 14:42:50
393
原创 [Mycat2]执行计划管理-2021-4-20
author:chenjunwen 2021-4-20This work is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.Mycat2的执行计划管理主要作用是管理执行计划,加快SQL到执行计划的转换,并且提供一个方式可以从持久层读取自定义的执行计划.它与缓存结果集不同,它更接近传统分库分表的缓存路由.Mycat2引入这个功能的初衷是Calcite在分析复杂SQL的耗时比较..
2021-04-22 14:41:56
384
原创 [Mycat2]UnionAll分库分表优化
[Mycat2]UnionAll优化在不跨数据库的情况下,涉及到多个分表合拼的时候,可以有多个选择,常用的是在Mycat中开启多个后端连接然后使用把返回的行汇总在一起或者在数据库中使用集合运算把分表的数据汇总.上述两种,Mycat2都支持.在同一个数据库上涉及多个分表,Mycat2会使用union all语法把多个生成的SQL连接起来生成一个新的SQL让数据库执行.Mycat2可以配置生成的每个SQL中出现union all的数量,默认值是5个,它可以汇总6个SQL(表),假如一年分12个表,5个un
2021-04-06 10:43:17
809
原创 [Mycat2]JoinClustering
JoinClusteringMycat2在1.17开始正式支持JoinClustering,该名字来自于PolarDB-X的JoinClustering.它对分库分表类数据库的join下推至关重要.Mycat2对其理解后进行开源实现.它是SQL重写技术,优化目标是生成更优的存储节点执行的SQL,使更多Join运算在存储节点运算,大大减少Mycat2的运算.它是基于Join Reorder技术进行构建的.Mycat2的SQL重写器在遇到不能应用两表下推规则(任意表+全局表),再判断是否是inner..
2021-03-20 21:45:16
229
原创 [Apache Calcite]org.apache.calcite.plan.volcano.RelSubset cannot be cast to
public Calc copy(RelTraitSet traitSet, RelNode child, RexProgram program)实现该方法没有使用参数的值导致的错误
2021-02-07 01:57:10
260
原创 [MySQL] error(2014) Commands out of sync; you can‘t run this command now
该错误是因为报文ok包出现了多结果集的标记,但是客户端还没有收到响应,用户就操作客户端
2021-02-04 17:55:57
198
原创 [Mycat2]Expression ‘t.user_id‘ is not being grouped
SELECT t.user_id FROM db1.travelrecord t GROUP BY id;Expression 't.user_id' is not being grouped修改成SELECT any_value(t.user_id) FROM db1.travelrecord t GROUP BY id;projectItem被group by的引用的无聚合函数的字段需要使用any_value...
2021-02-02 13:22:09
4575
原创 Enumerator#reset调用图
org.apache.calcite.linq4j.CartesianProductEnumerator#reset调用图org.apache.calcite.linq4j.CartesianProductEnumerator子类:org.apache.calcite.runtime.SqlFunctions.ProductComparableListEnumeratororg.apache.calcite.runtime.SqlFunctions#product...
2021-01-26 14:02:42
124
原创 基于Calcite制作分库分表中间件(方案3)
上次提到模版结合新自定义关系表达式来实现有效的sql生成,那么我们可不可以像方案1中直接使用Calcite现成的(蛛丝马迹)功能实现,或者说加以强化.答案是有的方法有三种表函数法org.apache.calcite.rel.core.TableFunctionScan实际上分库分表的逻辑表可以表述为形式1:分片函数_表名(单分片值),分片函数_表名(范围分片值)形式2:分片函数(表名,分片值),分片函数(表名,范围分片值)而分片分表的谓词分析就是为了提取分片值..
2021-01-21 19:59:36
523
1
原创 VA ,MySQL Client XA Transcation Tools Based on Vertx
VA ,MySQL Client XA Transcation Tools Based on Vertx
2021-01-18 14:15:12
118
原创 java.sql.SQLException: Buffer length is less then expected payload length
1.colunm count = 02.缺收到了结果行
2021-01-08 22:03:35
2793
原创 基于Calcite制作分库分表中间件(功能场景)
使用Calcite制作分库分表中间件,在实现功能的过程中,存在着几种用途,总得来说,有三种.1.仅分析或简单执行例子1观察此SQLUPDATE Person SET FirstName = 'Fred' WHERE LastName = 'Wilson' Calcite会把它编译成类似下面的关系表达式LogicalTableModify LogicalFilter LogicalProject LogicalTableScan.
2020-12-23 22:46:07
554
2
原创 基于Calcite制作分库分表中间件(方案2)
作为分库分表中间件,分片条件应用分区剪裁规则,减少扫描范围是必须做的优化.在方案1中,使用了一次下推,一次关系表达式重写,一次上拉,在然后生成分片执行的SQL,然后使用CBO生成执行器.在生成SQL的代码里,仅仅是使用分片信息作为区分在中间件中运算的部分与在存储数据库中运行的部分是不足够的.我们还要考虑以下因素,生成的SQL能否在数据库中运行,关系表达式以及他们的组合是否能变成SQL,生成的SQL在数据库中执行高效.所以我们需要进一步定制规则来优化.新的关系表达式重写器我们不妨制作.
2020-12-22 23:50:59
325
原创 基于Calcite制作分库分表中间件(方案1)
基于Calcite制作分库分表中间件(方案1)RBO第一阶段-下推分片条件谓词使用下推LogicalFilter的规则与org.apache.calcite.rel.rules.FilterTableScanRuleorg.apache.calcite.rel.rules.ProjectTableScanRule规则把Filter下沉到LogicTableScan之上FilterTableScanRule和ProjectTableScanRule会把Table转化成..
2020-12-21 19:55:01
503
1
原创 drds-tpcc
修改自https://help.aliyun.com/document_detail/139634.html?spm=5176.11065259.1996646101.searchclickresult.5fac276e6bTIdLcreate table config ( cfg_name varchar(30) primary key, cfg_value varchar(50));create table warehouse ( w_id integ
2020-12-21 16:46:43
156
1
原创 [show create table]mysql.proc
CREATE TABLE `mysql`.`proc` ( `db` varchar(64) DEFAULT NULL, `name` varchar(64) DEFAULT NULL, `type` enum('FUNCTION','PROCEDURE','PACKAGE', 'PACKAGE BODY'), `specific_name` varchar(64) DEFAULT NULL, `language` enum('SQL'), `sql_data_access`...
2020-10-26 17:17:49
200
原创 使用betterJoy导致开始菜单中自动滚动
在带有管理员权限的cmd执行就可以解决问题sfc /scannowxbox_controller.SubmitReport()会触发这个问题xbox360使用ViGEm实现,所以使用ViGEm实现的控制器驱动都可能有这个问题
2020-10-10 20:29:37
2648
2
原创 yuzu编译日志
用于对于确认是否生成项目文件-- Selecting Windows SDK version 10.0.18362.0 to target Windows 10.0.18363.-- The C compiler identification is MSVC 19.27.29112.0-- The CXX compiler identification is MSVC 19.27.29112.0-- Detecting C compiler ABI info-- Detecting C com
2020-10-08 17:25:58
2112
原创 通过更改cmake的源码实现使用代理的下载命令
一些使用cmake构建的项目,使用file(download)file(download)命令拉取网上资源构建,通过查询资料,可以通过设置系统环境变量指定cmake使用的crul使用代理,该crul是在项目源码上编译嵌入的,而非外部shell调用.如果设置的代理不生效,则需要更改源码实现.0.具有vs ide环境1.上cmake官网下载源码2.使用cmake构建cmake,并生成vs项目3.找到cmake-3.18.4\cmake-3.18.4\Source\cmFileCo.
2020-10-08 17:15:21
2186
1
原创 BetterJoy_v6.4a_x64 不能显示窗口,无法启动
以下情况很可能出现这个情况1.使用国行joycon手柄2.使用BetterJoy_v6.3_x64能正常使用,而BetterJoy_v6.4a_x64不能解决版本BetterJoyForCemu.exe.Config文件并更改NonOriginalController为true。
2020-10-05 23:26:15
5575
2
原创 [Apache Calcite] 添加calcite类型转换规则
org.apache.calcite.sql.type.SqlTypeAssignmentRule 添加TIME TO INTERVAL_TYPES 与INTERVAL_TYPES TO TIME //TIME TO INTERVAL_TYPES rule.clear(); rule.addAll(SqlTypeName.INTERVAL_TYPES); rules.add(SqlTypeName.TIME, rule); rules.add(SqlTyp...
2020-09-29 18:22:39
656
原创 Mycat1.6存储过程支持
要支持这个,要检查Mycat前端后端都支持两种情况1.mycat能响应无字段报文的单个结果集,即只有row包2.mycat能支持多语句响应的结果集和ok包当然最好的办法是强制mysql服务总是发送带有字段的结果集并不使用多语句,mycat1675是支持的,具体是https://blog.youkuaiyun.com/qq_31183071/article/details/102653151SELECT @p_id AS c;是把结果作为查询语句返回,这句是关键...
2020-09-15 16:38:40
609
原创 Mycat2优化器-2020-9-1
optimizer-Mycat2.0Mycat2优化器author:chenjunwen 2020-8-20This work is licensed under aCreative Commons Attribution-ShareAlike 4.0 International License.前言 本文描述的设计细节,大部分已经实现,有小部分没有完全实现。 Mycat2减少使用人类理解编写的SQL解析路由和基于经验制作的查询引擎的思路来实现查询引擎,取而代之,使用基于关系..
2020-09-12 12:32:47
646
原创 [Apache Calcite] 允许使用未定义的sql函数
org.apache.calcite.sql.validate.SqlValidator.Config#withLenientOperatorLookup设置为true SqlValidator.Config.DEFAULT.withSqlConformance(calciteConnectionConfig.conformance()) .withTypeCoercionEnabled(true).withLenientOperatorLookup(...
2020-08-20 15:16:22
438
原创 [zabbix]cat ‘/home/cjw/create (1).sql/data‘ | mysql -uzabbix -p123456 -Dzabbix ERROR 1049 (42000):
ERROR 1049 (42000): Unknown database 'zabbix'cat '/home/xx/create (1).sql/data' | mysql -uzabbix -p123456 -DzabbixERROR 1049 (42000): Unknown database 'zabbix'解决 cat '/home/xx/create (1).sql/data' | mysql -uzabbix -p123456 -Dzabbix...
2020-07-02 22:59:40
328
原创 [Zabbix]at line 165: Specified key was too long; max key length is 767 bytes
create database zabbix character set utf8 collate utf8_bin;
2020-07-02 22:58:08
465
原创 zabbix缺乏create.sql.gz
1.到官网下载源码2.找到此文件夹zabbix-3.0.31.tar\zabbix-3.0.31\database\mysql\3.schema.sql,images.sql,data.sql依次导入例子cat data.sql | mysql -uzabbix -p zabbix
2020-07-02 19:52:46
7302
2
原创 grafana安装插件,例如cloudspout-button-panel
适用于windowsgrafana-cli --pluginUrl xxxxx/cloudspout-cloudspout-button-panel-7.0.3-0-gb4b3193.zip plugins install cloudspout-button-panel
2020-07-01 17:29:56
565
1
原创 com.github.oshi 应用信息监控库
<!-- https://mvnrepository.com/artifact/com.github.oshi/oshi-dist --><dependency> <groupId>com.github.oshi</groupId> <artifactId>oshi-dist</artifactId> <version>5.2.0</version> <type&g...
2020-06-29 14:16:31
3256
原创 Java URL获取本地文件
URL url = new URL("file:/D:/xxxx.yml"); try(InputStream is = url.openStream()){ String read = Utils.read(is); System.out.println(); }
2020-06-23 23:59:41
5050
原创 使用java.sql.Statement的时候,连接被服务器关闭
使用java.sql.Statement的时候,连接被服务器关闭Caused by: java.net.SocketException: Software caused connection abort: recv failed at java.net.SocketInputStream.socketRead0(Native Method) at java.net.SocketInputStream.socketRead(SocketInputStream.java:116) at jav...
2020-06-23 22:48:34
560
原创 Mycat1.6 偶然记录只有一条
解决办法:设置后端连接方式为jdbc或者升级到1675Mycat-server-1.6.7.5-test-20200303154735@zhouwenqing1.增加SET SQL_SELECT_LIMIT=NIDEFAULT语句解析,保存解析结果到前端连接,发送语句到后端查询的时候再传递到后端。防止前端设置了这个值,后端连接给其他查询语句使用返回结果被限制问题(只返回1条记录集)2.修正旧版mysql客户端发送COM_FIELD_LIST命令,获取表字段信息时只有feldEof没有R
2020-06-17 22:20:28
331
1
gtk-3.24.zip(添加放置路径说明文件)
2020-09-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人