新闻资讯

什么是MySQL分区?爱可生带你一探究竟

发布时间:2021-01-13 浏览次数:5

在日常工作中当我们的某张表的数据量过大的时候,最先想到的可能就是对表格进行分区和分表,但是分区或者分表都要结合当下实际的业务场景再对其进行分析,如此才会显著的提升性能。所以,所谓的MySQL分区到底是什么呢?

4a10031aead89f5d

随着进入MySQL5.1及以上的时代,也随着硬件成本的降低和平民化,X86服务器硬盘更多和内存更大(起步都是6块SAS硬盘,64G内存),InnoDB存储引擎得到迅速的普及,且MySQL数据库支持分区特性。MySQL分区是将一个表或索引分解成多个更小,更可管理的部分。每个区都是独立的,可以独立处理,也可以作为一个更大对象的一部分进行处理。这个是MySQL支持的功能,业务代码无需改动。要知道MySQL是面向OLTP的数据,它不像TIDB等其他DB。那么对于分区的使用应该非常小心,如果不清楚如何使用分区可能会对性能产生负面的影响。

MySQL数据库的分区是局部分区索引,一个分区中既存了数据,又放了索引。也就是说,每个区的聚集索引和非聚集索引都放在各自区的(不同的物理文件),但目前MySQL数据库还不支持全局分区。

分表和分区都是基于同一个数据库里的数据分离技巧,对数据库性能有一定提升,对MySQL数据库的吞吐量无质的变化。当业务系统的数据容量接近或超过单台X86服务器的容量、QPS/TPS接近或超过单个MySQL数据库实例的处理极限等,则重点在于扩展MySQL数据库的吞吐量和数据处理量。此时,往往是采用垂直和水平结合的数据拆分方法,把数据服务和数据存储分布到多台MySQL数据库服务器上。

MySQL分区路上还有很多坑,如果你对这块内容存在疑惑,上海爱可生有专门针对性课程,带你少走弯路,直道超车。

上一篇: 运维数据库的作用和特点有哪些?

下一篇: 没有了

产品试用 产品试用
400-820-6580 免费电话