sql跨库查询优化 Mybaits springboot有哪些分库分表插件推荐?
Mybaits springboot有哪些分库分表插件推荐?
你可以通过Spring Boot·迈巴蒂斯·JDBC实现数据库和表的共享。
Harding-jdbcsharding-JDBC:定位为轻量级spring mvc,它在Java的JDBC层提供附加服务。它使用客户端直接连接数据库,以jar包的形式提供服务,不需要额外的部署和依赖。可以理解为增强的JDBC驱动,完全兼容JDBC和各种ORM框架。
它适用于任何基于Java的ORM框架,如JPA、Hibernate、MyBatis、Spring JDBC模板或直接使用JDBC。它基于任何第三方数据库连接池,如DBCP、C3P0、BoneCP、Druid、HikariCP等。支持任何实现JDBC规范的数据库,如MySQL、Oracle、SQLSever和PostgreSQL,以及任何遵循SQL92标准的数据库。Sharding-jdbc架构ShardingSphere-JDBC采用去中心化架构,适用于Java开发的高性能轻量级OLTP应用。
功能数据碎片化:子库子表,读写分离,分布式主键;分布式交易;XA强一致事务,灵活事务;数据库治理;配置动态、熔断和禁用,以及呼叫链路跟踪;子库、子表的方法有纵向子表、纵向子库、横向子表、横向子库。
竖表拆分:将一个宽表的字段根据访问频率的原则和是否是大字段拆分成多个表,可以使业务清晰,提高一些性能。拆分后,从业务角度尽量避免联查,否则性能得不偿失。垂直库分类:根据业务耦合对多个表进行分类,分别存储不同的库。这些库可以分布不同的服务器,使得访问压力由多台服务器承载,大大提高了性能,提高了整体架构的业务清晰性。不同的业务库可以根据自身条件定制优化方案。但是它需要解决跨库带来的所有复杂问题。横向数据库分离:将一个表的数据(按数据行)分成几个不同的数据库,每个数据库只有这个表的部分数据,而这些数据库可以分布在不同的服务器上,这样就使得访问压力由多个服务器来承担,大大提高了性能。它不仅要解决跨数据库带来的所有复杂性问题,还要解决数据路由问题。水平表拆分:将一个表的数据(按数据行)拆分成同一个数据库中的多个表,每个表只有这个表的部分数据,可以稍微提高性能,它只是作为水平数据库的补充优化。一般来说,在系统设计阶段,要根据业务耦合的紧密程度来确定垂直数据库和表的拆分方案。当数据量和访问压力不是特别大的时候,首先要考虑缓存。、读写分离、索引技术等。如果数据量非常大并且持续增长,可以考虑横向子数据库和横向子表方案。
介绍mav:请将$ {}更改为实际版本号。
规则配置ShardingSphere-JDBC可以通过四种配置:Java、YAML、Spring Namespace和Spring Boot启动器。开发人员可以根据场景选择合适的配置方法。
创建一个数据源,通过ShardingSharedTasource工厂和规则配置对象获取ShardingSharedTasource。这个对象是从JDBC的标准DataSource接口实现的,可以用于原生JDBC开发或者使用ORM类库,比如JPA和MyBatis。
官方中文文件:
如果解决了你的疑惑,请关注,谢谢你的支持。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。