mysql 分区的真正作用?

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

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

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

时间: 2024-09-23 06:32:43

mysql 分区的真正作用?的相关文章

mysql分区之LIST分区讲解

  mysql分区之LIST分区讲解 MySQL中的LIST分区在很多方面类似于RANGE分区.和按照RANGE分区一样,每个分区必须明确定义.它们的主要区别在于,LIST分区中每个分区的定义和选择是基于某列的值从属于一个值列表集中的一个值,而RANGE分区是从属于一个连续区间值的集合.LIST分区通过使用"PARTITION BY LIST(expr)"来实现,其中"expr" 是某列值或一个基于某个列值.并返回一个整数值的表达式,然后通过"VALUES

mysql分区之RANGE分区讲解

  mysql分区之RANGE分区讲解 按照RANGE分区的表是通过如下一种方式进行分区的,每个分区包含那些分区表达式的值位于一个给定的连续区间内的行.这些区间要连续且不能相互重叠,使用VALUES LESS THAN操作符来进行定义.在下面的几个例子中,假定你创建了一个如下的一个表,该表保存有20家音像店的职员记录,这20家音像店的编号从1到20. CREATE TABLE employees ( id INT NOT NULL, fname VARCHAR(30), lname VARCHA

Win8系统各分区有什么作用?

  随着预装Win8电脑大量涌向市场,UEFI+GPT这一标准组合受到了更大范围的关注.UEFI+GPT无疑是未来的发展趋势,所以我们有必要先来了解一下用于引导Windows的GPT分区结构的磁盘中一些特殊分区的作用. 使用Windows安装程序默认创建的分区 当我们在GPT中安装Windows8/7,并且使用Windows安装程序对硬盘进行重分区操作时默认将创建下表所示的几个分区. 分区 大小 类型 文件系统 恢复分区(WinRE) 300MB 主分区 NTFS EFI系统分区 100MB E

MySQL分区技术

原文:MySQL分区技术 针对海量数据的优化主要有两种: 大表拆小表的方式:SQL语句的优化   分区技术: 与水平分割类似,但它是在逻辑层进行的水平分表,对于应用程序而言它还是一张表   一.range方式 1.创建一张分区表   可以到/usr/local/mysql/var/test/下看到生成这么多文件(26个)    2.创建一张未分区表  可以到/usr/local/mysql/var/test/下看到生成3个对应的文件   3.建立load_part_tab存储   4.添加800

关于MYSQL flush table的作用

关于MYSQL flush table的作用 水平有限,还待学习.如有错误,请指正. 先给出官方文档: ? FLUSH TABLES Closes all open tables, forces all tables in use to be closed, and flushes the query cache. FLUSH TABLES also removes all query results from the query cache, like the RESET QUERY CACH

mysql分区方案的研究

   笔者觉得,分库分表确实好的.但是,动不动搞分库分表,太麻烦了.分库分表虽然是提高数据库性能的常规办法,但是太麻烦了.所以,尝试研究mysql的分区到底如何.  之前写过一篇文章,http://www.cnblogs.com/wangtao_20/p/7115962.html 讨论过订单表的分库分表,折腾起来工作量挺大的,需要多少技术去折腾.做过的人才知道有多麻烦      要按照什么字段切分,切分数据后,要迁移数据;分库分表后,会涉及到跨库.跨表查询,为了解决查询问题,又得用其他方案来弥补

mysql 分区类型详解

RANGE分区 基于属于一个给定连续区间的列值,把多行分配给分区. 这些区间要连续且不能相互重叠,使用VALUES LESS THAN操作符来进行定义.以下是实例. CREATE TABLE employees ( id INT NOT NULL, fname VARCHAR(30), lname VARCHAR(30), hired DATE NOT NULL DEFAULT '1970-01-01′, separated DATE NOT NULL DEFAULT '9999-12-31′,

mysql information_schema有什么作用

information_schema数据库是MySQL自带的,它提供了访问数据库元数据的方式.元数据是关于数据的数据,如数据库名或表名,列的数据类型,或访问权限等.有些时候用于表述该信息的其他术语包括"数据词典"和"系统目录". 在 MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库.其中保存着关于MySQL服务器所维护的所有其他数据库的信息.如数据库名,数据库的表,表栏的数据类型与访问权 限等.在INFORMATION_S

Mysql分区技术的实例

一.查看当前MySQL是否支持分区技术 二.使用HASH实现一个简单测试案例 1.建立一个分区表 2.查看数据库文件初始状态 计算实例"> 3.写一个存储过程生成100万条记录 4.查看存储后的数据文件,可以看到数据均匀分布