什么是分库分表分库:按照一定的规则将数据分到多个苦中,主要解决单个库连接并发过多,单机数据库顶不住压力的问题分表:将单个数据库里的某一张表,按照某个规则分为多张表,主要解决单张表数据过多的问题,减轻单表压力怎么分分库按业务不同来分,专库专用,微服务使用数据库的场景就是典型代表分表将字段较多的表,拆分成多个表,就是大表拆分成多个小表。访问次数频繁的字段拆分至核心表,数据库加载数据时会更多只加载核心表数据到内存中,减少磁盘IO,提高性能将一张表按一定的规则(简单的有哈希)切分成多个结构相同的表,按照规则来存储/读取数据,切分出来的每张表只储存原表的一部分数据。能够解决单表数据量过大。还可以将切分的表存放至不同的库中,实现分布式,进一步提高性能Go中可以如何实现在代码中实现,如repo层/data层中手动对传入的参数进行计算,侵入性比较强,但是调试方便ORM框架中使用中间件,由中间件来解析语句并计算,应用代码中无感,如GORM的Sharding在应用于数据库中加一层代码,由数据库代理来实现,类似第二种方案,只不过是外部中间件完成