MySql—分区表【应用场景/局限性/实现原理/使用教程/实际测试】

本文介绍了MySQL分区表的应用场景,包括优化大数据量查询、提高查询吞吐量等优势,以及分区表的局限性,如无法创建全文索引、不支持外键约束等。文章详细阐述了分区表的实现原理,并提供了简单的使用教程,重点讲解了RANGE分区类型。通过分区表,可以有效管理和优化大规模数据表的查询性能。

一.概述

     之所以接触到Mysql表分区,是缘由最近客户公司运营自去年,数据量曾几何暴增,导致表数据非常的庞大,一张表有上亿数据行不止。普通MySql优化,如关键字段索引,字段优化,查询语句优化也已经远远满足不了需求。前期经过开会商讨,给予的方案是:①数据库上:按月建立分表,按年建立分库;②客户端:默认显示当月数据,实现按月查询 ③服务端:按日期进行建表/查表,及相应数据的改/删。此方案基本解决了客户端用户的体验,但是对于针对个别用户要进行数据校验,就要进行从年库汇总,还要从月库汇总累加,服务端代码量的修改,及业务逻辑十分复杂。此时便萌生我们的MySql有没有为我们提供此问题的解决方案,通过了解,查到MySQL--分区表的相关知识。

二.应用场景/为什么要进行分区/优点(MySQL版本在5.1及以上)

①对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有关的分区,很容易地删除那些数据。相反地,在某些情况下,添加新数据的过程又可以通过为那些新数据专门增加一个新的分区,来很方便地实现。

②与单个磁盘或文件系统分区相比,可以存储更多的数据。

③一些查询可以得到极大的优化,这主要是借助于满足一个给定WHERE语句的数据可以只保存在一个或多个分区内,这样 在查找时就不用查找其他剩余的分区。因为分区可以在创建了分区表后进行修改,所以在第一次配置分区方案时还不曾这么做时,可以重新组织数据,来提高那些常用查询的效率。

④涉及到例如SUM()和COUNT()这样聚合函数的查询,可以很容易地进行并行处理。通过“并行”,这意味着该查询可以在每个分区上同时进行,最终结果只需通过总计所有分区得到的结果。

⑤通过跨多个磁盘来分散数据查询,来获得更大的查询吞吐量。

三.局限性

①适合开发周期短,成本低的项目,不建议大型项目使用。 /*许多大型项目基本采用按照实际业务逻辑,进行建立年库,分表*/

②分区表无法创建全文索引/*所以使用,就得结合自己的使用场景,是否涉要涉及到全文检索*/

③分区表无法使用外键约束

④一个表最多只能有1024

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值