首页 > 数据库 > MySQL > 正文

MySQL中表分区技术详细解析

2024-07-24 12:44:38
字体:
来源:转载
供稿:网友

MySQL 分区技术(是mysql 5.1以版本后开始用->是甲骨文mysql技术团队维护人员以插件形式插入到mysql里面的技术)

1、概述

数据库单表到达一定量后,性能会有衰减,像mysql/sql server等犹为明显,所以需要把这些数据进行分区处理。同时有时候可能出现数据剥离什么的,分区表就更有用处了!

MySQL 5.1 中新增的分区(Partition)功能就开始增加,优势也越来越明显了:

    与单个磁盘或文件系统分区相比,可以存储更多的数据 很容易就能删除不用或者过时的数据 一些查询可以得到极大的优化 涉及到 SUM()/COUNT() 等聚合函数时,可以并行进行 IO吞吐量更大 分区允许可以设置为任意大小的规则,跨文件系统分配单个表的多个部分。实际上,表的不同部分在不同的位置被存储为单独的表。

    2、分区技术支持

    在5.6之前,使用这个参数查看当将配置是否支持分区:

    mysql> SHOW VARIABLES LIKE '%partition%';+-----------------------+-------+|Variable_name | Value |+-----------------------+-------+| have_partition_engine | YES |+-----------------------+-------+

    如果是yes表示你当前的配置支持分区。 在5.6及以采用后,则采用如下方式进行查看:

    mysql> SHOW PLUGINS;+----------------------------+----------+--------------------+---------+---------+| Name | Status | Type | Library | License |+----------------------------+----------+--------------------+---------+---------+| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL || mysql_native_password | ACTIVE | AUTHENTICATION | NULL | GPL |..................................................................................| INNODB_LOCKS | ACTIVE | INFORMATION SCHEMA | NULL | GPL || INNODB_LOCK_WAITS | ACTIVE | INFORMATION SCHEMA | NULL | GPL || partition | ACTIVE | STORAGE ENGINE | NULL | GPL |+----------------------------+----------+--------------------+---------+---------+

    42 rows in set (0.00 sec) 最后一行,可以看到partition是ACTIVE的,表示支持分区。

    3、分区类型及举例

    3.1范围分区

    RANGE 分区:基于属于一个给定连续区间的列值,把多行分配给分区。如时间,连续的常量值等 --按年分区

    mysql> use mytest;Database changedmysql> create table range_p( -> perid int(11), -> pername char(12) not null, -> monsalary DECIMAL(10,2), -> credate datetime -> ) partition by range(year(credate))( -> partition p2011 values less than (2011), -> partition p2012 values less than (2012), -> partition p2013 values less than (2013), -> partition p2014 values less than (2014), -> partition p2015 values less than maxvalue -> );Query OK, 0 rows affected (0.12 sec)
    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表