数据库系列课程(09)-Sharding-Jdbc日志分析
程序员文章站
2024-03-21 16:50:22
...
Sharding-JDBC中的路由结果是通过分片字段和分片方法来确定的。
- 如果查询条件中有 id 字段的情况还好,查询将会落到某个具体的分片。
- 如果查询没有分片的字段,会向所有的db或者是表都会查询一遍,让后封装结果级给客户端。
Sharding-Jdbc和MyCat查询原理大致相同:
示例代码:
public interface OrderRepository extends CrudRepository<OrderEntity, Long> {
@Query(value = "SELECT order_id ,user_id FROM t_order where order_id in (?1);", nativeQuery = true)
public List<OrderEntity> findExpiredOrderState(List<String> bpIds);
@Query(value = "SELECT order_id ,user_id FROM t_order where user_id=:userId ", nativeQuery = true)
public List<OrderEntity> findByUserId(@Param("userId") Long userId);