zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

mysql 分区的真正作用?

mysql 作用 分区 真正
2023-09-14 08:57:29 时间

在mysql 表中 建立分区 很多人都说能够提供查询效率 如果是以主键id分区可以减少查询的范围! 但是也有人说 分区更重要的对数据的管理(清除) 比如保留三个月有效数据 可以将 可以根据时间字段 分区讲三个月前的 数据清除!直接清除分区!想问一下大神 分区到底在哪方面发挥的优势大!应该怎么用?


两种说法都是对的,并且实际上是一回事。数据库分区实际上是提供了数据在物理上的隔离。
你可以这样理解:
你把每天的日记写在了一本无限页数的本子上。有一次,你想回味其中某一篇的日记,你需要打开这个本子逐页查询(顺序遍历);随着日记的增多,某天查的时候你觉得日了狗,为了加快你查找的速度,你终于决定给这个厚厚的本子前面加一个时间的目录(建立索引);然而,好景不长,随着日记数进一步的增长,你发现光是翻目录就要很长时间,这时候你想到可以把你的大本本按月划分拆成不同的小本本(水平分区),并且每个小日记本也有自己的目录(本地索引),这样你的日记就能很科学地管理起来,极大方便了自己的查找。
与此同时你还发现了这么做的另一个好处:某天你突然觉得以前某一个月的自己很傻逼,想把这段时间的日记毁了不让别人看见,那么,只需要把某一个小本本烧掉就行(DROP PARTITION),而不必费劲从一个大本本中去掉那么几十页——这样既不好撕(DELETE效率低)也会影响到查看别的日记(表锁)。



转载:梦之网科技 http://www.mzwkj.com/



关于MySQL的分区索引 前段时间有同事问MySQL 分区索引是全局索引还是本地索引。全局索引和本地索引是Oracle的功能,MySQL(包括PostgreSQL)只实现了本地索引,并且因为有全局约束的问题,MySQL分区表明确不支持外键,并且主键和唯一键必须要包含所有分区列,否则报错。