开源、合久必分高性能、数据生态成熟的库分 MySQL 是国内应用最广泛的数据库,说 MySQL 见证了中国互联网的久必成长史,一点也不为过。合久必分 阿里基于 MySQL 构建了OceanBase;京东、数据腾讯时至今日也在大规模应用 MySQL。库分因此,久必它也理所应得成为了面试官必问、合久必分爱问的数据核心知识点。 很多朋友除了对索引、库分存储原理有疑惑外,久必当数据量达到一定规模时,合久必分MySQL 还会涉及到一个几乎必知必会的数据核心点——分库分表。 画外音:MySQL 是库分2019年 DB-Engines 评选的最受欢迎数据库,这些年一直在前三甲徘徊。源码库 性能瓶颈MySQL是B+树索引,当数据量过大时,索引所消耗的磁盘 IO 越来越多,查询性能下降。高并发情况下,单表数据量过大导致 SQL 性能差,数据库服务器负载太高再次导致性能下降,简直雪上加霜。 画外音:鸡蛋放到不同篮子里。 分库分表的高防服务器核心是数据拆分,分库不一定分表,分表不一定分库。 例如,MySQL 单表数据的极限在5000万左右,当数据量超过5000万时,我们就需要分表进行存放数据了。 简单来说,就是将一个表结构分为多个表,或者将一个表数据分片后放入多个表。这些表可以放在同一个数据库里,也可以放到不同的数据库中,甚至可以放到不同的数据库实例。 数据拆分方式: 常见方案: 【本文为专栏作者“58沈剑”原创稿件,转载请联系原作者】 戳这里,看该作者更多好文问题1:分库分表解决什么问题?
问题2:分库分表的逻辑是什么?
问题3:面试官问,分库分表方案有哪些?