这段文字详细介绍了MySQL数据库中的分表和分区概念,以及它们的应用和不一样。
分表
- 定义将一个巨大表按照一定的规则分解成优良几个细小表,个个细小表dou对应一个独立的数据存储地方。
- 目的搞优良数据库处理一巨大堆数据的效率,少许些单个表的负载,优化查询性Neng。
- 实现方式Neng用
MERGE存储引擎, 通过创建一个“总表”来管理优良几个“分表”,并用UNION子句将它们联合起来。
- 优良处
性优良,容易于维护。
- 不优良的地方需要应用程序进行数据管理,实现麻烦。
分区
- 定义将一个巨大表的数据按照一定规则分散存储到优良几个物理区块中,这些个区块Neng位于同一磁盘或不同磁盘。
- 目的搞优良数据库的磁盘I/O性Neng,突破磁盘读写Neng力瓶颈。
- 实现方式MySQL支持许多种分区类型,如RANGE、LIST、HASH、KEY等。
- 优良处轻巧松容易用,对应用程序透明。
- 不优良的地方分区键设计不灵活,兴许造成全表锁。
分库分表
- 定义将数据分散存储到优良几个数据库和表中,通常是水平切分。
- 目的解决单台数据库的并发访问压力,搞优良系统
性。
- 实现方式将数据分散到不同的数据库和表中。
- 优良处搞优良系统
性和并发Neng力。
- 不优良的地方数据管理麻烦,跨库查询困难办。
分表和分区的联系与不一样
- 联系两者dou是为了搞优良数据库性Neng,但侧沉点不同。
- 不一样
- 分表是将一个巨大表分成优良几个细小表,而分区是将数据分散到优良几个区块。
- 分表侧沉于搞优良查询性Neng,分区侧沉于搞优良I/O性Neng。
- 分表需要应用程序管理,分区对应用程序透明。
分库分表的应用场景
- 海量数据当单表数据量过巨大时Neng通过分库分表来优化性Neng。
- 高大并发当数据库面临高大并发访问时Neng通过分库分表来分散压力。
- 数据烫点对于数据烫点,Neng通过分库分表来少许些烫点压力。
分表和分区是MySQL数据库中常用的优化手段,它们Neng单独用,也Neng结合用。选择合适的分表和分区策略对搞优良数据库性Neng至关关键。