当前位置: 首页 > 网络应用技术

实施Sharding-JDBC,一些非常痛苦的注意点

时间:2023-03-06 11:14:30 网络应用技术

  在“减法表”中,选择和过程应该谨慎,否则我们将讨论驱动程序中的驱动层。开源级别很棒,与成为太监不同,但是有坑。

  但是你不能怪框架。毕竟,有一些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,欢迎加入朋友并进一步沟通。