sharding分表应用笔记(四)——踩坑记录

发布时间 2023-11-22 16:20:41作者: pjgyr

sharding分表应用笔记(四)——踩坑记录(更新中)

1 sql语句使用时不带分表关键字段

如果不带分表关键字段,会默认进行全节点域遍历。如果没有预先创建所有的表节点,会报错提示找不到对应的表。如果表节点已经全部存在,则不会报错可以正常执行。

注意:

  1. 通常并不会一次性把所有的表节点全部建立;
  2. 即使可以正常执行,但是因为是在全节点域遍历,所以可能会对数据库产生较大压力,建议强制所有的sql语句对关键字段进行限制;
  3. 默认的的全节点域仅为配置中的节点,如果在自定义分表策略中有额外的节点注入(如历史表),将不会出现在节点列表中。

2 在事务中触发数据源路由

在事务创建时,会建立当前connection的缓存,所以在一个事务中数据源的配置始终和进入事务时的配置相同;如果想要在事务中使用其他的数据源,需要提前进行切换,或者在事务中创建新的事务。