分库分表:
对于大型互联网项目,数据量级可能不是我们能想到的,每日新增数据量过千万是常有的事儿,想靠单台MySQL服务器是不现实的。你项羽在牛B,也顶不住四个队友挂机啊!!项羽:???
随着业务数据量和网站QPS日益增高,对数据库压力也越来越大,单机版数据库很快会到达存储和并发瓶颈,就需要做数据库性能方面的优化,分库分表采取的是分而治之的策略,分库目的是减轻单台MySQL实例存储压力及可扩展性,而分表是解决单张表数据过大以后查询的瓶颈问题,坦白说,这些问题也是所有关系型数据库的“硬伤”。
首先我们要知道分库、分表都是干啥的,本文主角还是我们的MySQL为第一视角。首先从字面意思来看:
分库:由单个数据库实例拆分成多个数据库实例,将数据分布到多个数据库实例中。
分表:由单张表拆分成多张表,将数据划分到多张表内。
今天我们就基于常见分库、分表的策略方式以及场景,来搞清楚我们到底啥时候用的到。常用策略包括:垂直分表、水平分表、垂直分库、水平分库。