在“减法表”中,选择和过程应该谨慎,否则我们将讨论驱动程序中的驱动层。开源级别很棒,与成为太监不同,但是有坑。
但是你不能怪框架。毕竟,有一些SQL,只有程序和幽灵才能理解。
将数据库分为表之后,它已成为cast割数据库。不支持许多SQL特征,需要用其他方式改进。
sharding -jdbc不支持它,并且可以将单个表用于替换。多人可以替换为存在
改成
sharding-jdbc不支持拥有,可以用来用嵌入式查询替换它
sharding-jdbc不支持联合(all),可以将其分为多个查询并在程序中缝制
sharding-jdbc不支持子女查询中的同一表,好像下面一样,它可以==>
以下错误==>
由于合并的限制,子问题包含不支持的聚合函数。
Sharding-JDBC不支持SQL中的注释。如果必须使用,则写在SQL面前或使用
更改为错误数年,但没有改变
在不支持的情况下。例如,当不在汇总函数中的情况下,需要将SQL逻辑的这一部分写入程序中。
当DBA中禁用函数时,是否应该填充坑?
没关系
但这不能...
碎片不支持以下查询形式和分析障碍
严格禁止将深页面分开而不切割键!因为SQL将在下面说明,然后在内存中运行。
=======
手表的名称需要与配置一致,并且建议是小写。由于路由放置在哈希姆普中,因此没有区别,因此,如果您的SQL写错了。
每个表必须使用路由信息进行配置,以正确分析。如果您的咖喱中有太多的表,则此配置文件会膨胀很大,并且有数千行。因此,您可以将中间的配置文件分开。
例如,需要将某些定时任务传播到所有库中。
使用以下方法获取真实的数据库列表
然后在每个库上执行扫描逻辑。在这种情况下,我不能使用真皮,您需要编写本机JDBC
此方法将获得切割键的列表,例如日期。然后通过遍历此列表来执行业务逻辑。当列表特别大时,此方法将很慢。
子函数表是危险的,因为一旦数据进入错误的数据库,后续维修就会麻烦。因此,在开始时,路由信息可以指向源表,即仅SQL路由的准确性。等待所有SQL路由验证和通过,然后切换到真实的库或表。
确保您可以打印SQL
将SQL打印到单独的文件(logback)
编写一些用于验证SQL文件的脚本。我在这里有一个常见的脚本,您可以更改逻辑。
您可能必须经常切换路由,因此可以在云中动态修改一些路由信息。
哦,是的,这里的开发阶段有一个验证代码,可以快速验证是否可以正确分析SQL。
一个用于教学的开源集系统,欢迎来到Star:github.com/xjjdog/bcmall.it包含TOB复杂业务,Internet高处并发业务,缓存应用程序;DDD,Micro -Service Guidance.Model驱动程序,数据驱动程序。了解有关大型服务进化路线,编码技能,学习linux和绩效调整。Docker/k8s帮助,监视,日志收集,中间件学习。,后端实践等。
SQL标准团队很高兴,而拆分表很简单。在数百行中,具有多种复杂功能的SQL只能是一个坑。
话虽如此,如果不是出于交易的特征,以支持旧的牙齿丢失业务,他们将使用它来完成那些不像人的后代,鬼魂不像鬼。
关于作者:姐妹口味小姐(xjjdog),一个公共帐户,不允许程序员绕行。基础设施和Linux的焦点。TEN的建筑学年,每天数千亿美元的交通,请与您讨论高度补偿世界,并给您不同的品味。我的个人微信XJJDOG0,欢迎加入朋友并进一步沟通。