当高并发系统设计时,为什么要分库分表?用过哪些分库分表中间件?不同的分库分表中间件都有什么优点和缺点?如何对数据库进行垂直拆分或水平拆分?如果要设计一个可以动态扩容缩容的分库分表方案,应该如何做?数据库分库分表以后,如何处理设计主键生成器?不同的主键生成方式有什么区别? 当高并发系统设计时,为什么要分库分表? 用过哪些分库分表中间件? 不同的分库分表中间件都有什么优点和缺点? 如何对数据库进行垂直拆分或水平拆分? 如果要设计一个可以动态扩容缩容的分库分表方案,应该如何做? 数据库分库分表以后,如何处理设计主键生成器? 不同的主键生成方式有什么区别?