MySql分区表性能测试及切换案例

  • 时间:
  • 浏览:0
  • 来源:uu快3下载地址_uu快3正规网_下载安装

下面亲们 深入分析MySql InnoDB表数据量大小对CRUD及DDL操作的性能影响:

于是,亲们 认为还可不还可以 通过将非分区表切换到分区表来降低该数据表地处的性能风险。

总体来看,切换分区表比较好的补救了亲们 当前对于数据量快速增长的数据库性能的担忧,为宜数据量再增长2、3倍应该是能扛住的。但它算是能如亲们 预期的在高并发下支持10倍数据量(即单表15亿记录)而性能表现依然稳定,仍有待实践证明。

为了补救业务中断,亲们 参考pt-online-schema-change的模式进行切换。

切换完成后,亲们 进行了一周的性能观察:CPU维持在10%,IOPS有8%左右的下降,存储空间有3%的上升。

单纯从整体的性能指标来看,切换前后变化并删改回会特别明显。但时候耗时如此长的操作,耗时稳定了下来,锁表冲突事件也基本如此再经常出先。通过PARTITIONS的分析,最大的多少多 多分区可是我还可不还可以100万行。即使数据量再扩大10倍,最大分区的数据量也才1000万,对于单个存储引擎文件来说,这删改无压力,理论上性能表现可是我会经常出先大幅下滑。但将会插进非分区表,估计业务高峰流量稍微一冲击,将会硬件性能经常出先波动(在资源共享的云计算环境中,较为常见),删改回会崩溃的风险。

目前,分区表将会稳定在生产环境运行了近多少多 多月。

通过上面的分析,亲们 还可不还可以 看出,InnoDB表数据量过大对各种操作都地处较大的性能影响。针对那先 问题报告 报告 ,有以下这名优化方案:

比如,亲们 一张记录用户情况表的表,存储在RDS for MySql(InnoDB存储引擎)中。此业务表最近膨胀到1.5亿条记录,存储占用100多G,且数据还在不断增长。

觉得目前整体性能表现尚可,但要素操作耗时如此长,锁表冲突事件也开始英语 经常出先。考虑到数据量的快速增长,以及数据库这名的雪崩特点,亲们 认为这张表地处很大的性能风险,急需优化。

针对大数据表,分区表的插入性能、存储空间算是分区表基本一致,查询性能在分区键上比非分区键好,DDL执行时间比非分区表短。

分区表是MySql 5.1引入的社会形态。根据官网alter-table-partition-operations的介绍,其本质是将分库分表直接集成到MySql中。亲们 知道,传统的分库分表功能,地处业务层、上面件、数据库三层:业务层通过调用上面件的API访问数据库,告诉我具体的物理存储细节;上面件将一张很大的逻辑表映射到数据库中多张较小的物理表,并对业务层的访问请求进行分解后分别插进对应物理库中执行,再将执行结果在上面件合并后返回给业务层,从而对业务层屏蔽物理存储细节;数据库则提供实际的物理存储。

通过以上的分析,亲们 得到以下的结论:

下面分别针对 插入、查询、DDL、存储空间 等多少关键性能指标进行测试(更新和删除数据的性能表现与查询数据比较一致,不单独分析)。测试结果如下:

MySql在5.5及时候的版本,对Online DDL支持不太好,会意味锁表。否则,percona推出pt-online-schema-change,利用触发器实现在DDL过程中无需造成读写阻塞。

而MySql的分区表,借助MySql这名的逻辑架构,将分库分表功能进行了下沉。MySql逻辑架构中的客户端即对应业务层,Server层对应上面件层,存储引擎层对应物理存储层。简单的说,分库表可是我亲们 在数据库层面看到是一张表,但物理上是分成多个文件独立存储。

分库分表是补救大数据表的利器。但亲们 数据库系统的CPU和IO资源很富余(CPU仅10%,IOPS仅100多),删改如此分库的必要。而分表会使得应用层的修改工作量巨大,代码的可读性也会变差。将会为了业务层的逻辑清晰再引入上面件进行代理访问,又有杀鸡用牛刀之感;

此方案最简单直接。但亲们 的业务中,还可不上可不还可以此表数据量较大且需用查询删改单据。仅为了一张表就引入这名存储机制,考虑到运维和经济成本,总觉得不划算。另外,此表还与一点表有一定的联合查询操作,分离出去回会增加应用层的比较复杂度;

互联网公司的业务变化很快,数据库表社会形态设计相对比较直接,很少会在前期设计的很完善。当业务存活并发展起来后,就需用在扩展性、安全性等方面进行改进。

具体步骤如下:

还可不还可以 看出:

逻辑上分析,分区表的优点很明显:既能补救大数据量的性能问题报告 报告 ,又能对应用层无缝切换。否则,其真实性能表现和稳定性到底为什么么么样? 还是得通过测试来验证。

为方便说明,亲们 将此业务表逻辑社会形态比较复杂为只中有 以下4列:id(自增列),depart_id(部门ID),user_id(员工ID),mark(员工业绩)。