Coldairarrow / EFCore.Sharding

Database Sharding For EFCore
Apache License 2.0
693 stars 143 forks source link

据说不支持跨表查询,其实想想也可以实现 #107

Closed carrot-rabbit closed 2 years ago

carrot-rabbit commented 3 years ago

查询时可以传入搜索时间范围(或统计全部的标识),执行查询时根据传入的时间标识确定要查询的所有表,然后Union符合条件的所有数据。不知是否可行,源码还没来得及细看,感觉应该可以实现,群主有时间可以实现或者指导下~

Coldairarrow commented 3 years ago

你表可能分布在不同的服务器,而且没必要,都分表了肯定数据量很大,没必要再去联表

carrot-rabbit commented 3 years ago

你表可能分布在不同的服务器,而且没必要,都分表了肯定数据量很大,没必要再去联表

某些特定的情况下还是可能跨表查询的,比如按月分表,这个月1号刚建了一个表,还没多少数据,客户昨天的数据都看不到了,不太好吧。表不在同一个服务器,群主说的是分库的情况吧?那就是另外的情况了,如果考虑分库,目前我觉得比较好的做法是按照用户去分库。

akniflag commented 3 years ago

你表可能分布在不同的服务器,而且没必要,都分表了肯定数据量很大,没必要再去联表

某些特定的情况下还是可能跨表查询的,比如按月分表,这个月1号刚建了一个表,还没多少数据,客户昨天的数据都看不到了,不太好吧。表不在同一个服务器,群主说的是分库的情况吧?那就是另外的情况了,如果考虑分库,目前我觉得比较好的做法是按照用户去分库。

根据这个业务,自定义分表规则,比如:非自然月

Coldairarrow commented 2 years ago

@carrot-rabbit 还没多少数据,客户昨天的数据都看不到了,这个怎么就看不到了,只要筛选时间没问题,会自动去从需要的查数据组装