`
zhaoshijie
  • 浏览: 2261991 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

mysql分区

 
阅读更多
参考网址:
http://blog.51yip.com/mysql/1013.html
http://www.iteye.com/topic/1032668

查看mysql分区信息(这里查看user表的分区信息):

select * from INFORMATION_SCHEMA.PARTITIONS where table_name='user';

查看执行一条查询SQL会扫描的分区:

explain partitions select * from user where id=10;

一、范围分区:

1、建表时就分区:

CREATE TABLE IF NOT EXISTS `user` ( 
   `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID', 
   `name` varchar(50) NOT NULL DEFAULT '' COMMENT '名称', 
   `sex` int(1) NOT NULL DEFAULT '0' COMMENT '0为男,1为女', 
   PRIMARY KEY (`id`) 
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 
PARTITION BY RANGE (id) ( 
     PARTITION p0 VALUES LESS THAN (3), 
     PARTITION p1 VALUES LESS THAN (6), 
     PARTITION p2 VALUES LESS THAN (9), 
     PARTITION p3 VALUES LESS THAN (12), 
     PARTITION p4 VALUES LESS THAN MAXVALUE 
);


2、对现有表进行分区:

可以对现有表进行分区,并且会按規则自动的将表中的数据分配相应的分区
# 中,这样就比较好了,可以省去很多事情,看下面的操作*/ 
alter table aa partition by RANGE(id) 
(PARTITION p1 VALUES less than (1), 
PARTITION p2 VALUES less than (5), 
PARTITION p3 VALUES less than MAXVALUE); 



1、查看分区情况
SELECT partition_ordinal_position as 定义顺序,table_schema as 所属数据库,table_name as 所属表,partition_name as 分区表名称,partition_method as 分区类型,partition_expression as 分区列名称,partition_description as 数据范围,table_rows as 数据总数,create_time as 创建时间,update_time as 修时间 FROM INFORMATION_SCHEMA.partitions WHERE TABLE_SCHEMA= schema() AND TABLE_NAME='user';
2、查看特定表的字段定义情况
desc user;
3、查看特定表的创建语句
show create table user;

4、创建表并设置分区
CREATE TABLE IF NOT EXISTS `user` ( 
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID', 
`name` varchar(50) NOT NULL DEFAULT '' COMMENT '名称', 
`sex` int(1) NOT NULL DEFAULT '0' COMMENT '0为男,1为女', 
PRIMARY KEY (`id`) 
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 
PARTITION BY RANGE (id) ( 
PARTITION p0 VALUES LESS THAN (3), 
PARTITION p1 VALUES LESS THAN (6), 
PARTITION p2 VALUES LESS THAN (9), 
PARTITION p3 VALUES LESS THAN (12), 
PARTITION p4 VALUES LESS THAN MAXVALUE 
);

5、删除一个分区(当删除了一个分区,也同时删除了该分区中所有的数据)

ALTER TABLE tr DROP PARTITION p2;


6、对现有表进行分区(对现有表进行分区,会按規则自动的将表中的数据分配相应的分区中,也可用于重新规划分区)
alter table aa partition by RANGE(id)  
(PARTITION p1 VALUES less than (1),  
PARTITION p2 VALUES less than (5),  
PARTITION p3 VALUES less than MAXVALUE);

7、新增一个分区(新增分区时必须先把MAXVALUE分区删除,增加完毕后再加上)
alter table user add partition(partition p4 values less than MAXVALUE);

6、查看mysql服务器是否支持分区
show variables like "%part%";

分享到:
评论

相关推荐

    MySQL 分区

    MySQL分区是一种数据库优化技术,它将大型表分成更小、更易管理的部分,每个部分称为一个分区。这种技术有助于提高查询性能,特别是对于那些需要处理大量数据或执行复杂查询的应用程序。MySQL支持多种分区类型,包括...

    互联网公司为啥不使用mysql分区表

    "互联网公司为啥不使用mysql分区表" 在互联网公司中,mysql分区表是一个比较少用的技术,这是因为分区表存在一些缺陷和限制,使得互联网公司更多地选择自己分库分表来水平扩展数据库。 首先,分区表的设计需要考虑...

    MySQL分区表自动创建及删除存储过程

    MySQL分区表是一种优化大型数据表查询效率的技术,它将一个大表分成多个逻辑上相连但物理上独立的部分,每个部分称为一个分区。分区可以按照不同的策略进行,如范围、哈希、列表或复合分区。这样做有助于提高数据...

    mysql分区文档

    MySQL 分区是数据库管理系统中的一种优化策略,它将大型表的数据分布在不同的物理存储上,以提高查询性能和便于管理大量数据。分区的本质是将一张大表逻辑上分成多个部分,但用户在操作时仍然将其视为单个表。MySQL ...

    MySQL分区分表方案实践手册

    ### MySQL分区分表方案实践手册知识点详述 #### 一、MySQL分区简介 数据库分区是一项重要的物理数据库设计技术,主要用于优化数据库性能并简化数据管理。MySQL的分区主要包括两种形式:水平分区和垂直分区。 - **...

    mysql分区资源整理

    ### MySQL分区资源整理 #### 一、分区概念与优势 MySQL中的分区技术是数据库优化的重要手段之一,尤其适用于处理大规模数据集。通过分区,数据库能够将一个庞大的表拆分为若干个小部分,使得管理和操作变得更加...

    mysql分区.pdf

    MySQL分区是数据库管理系统MySQL中的一种数据存储管理技术,它允许用户将数据表拆分成多个较小的、更容易管理的片段。这些片段被称为分区。通过这种技术可以提高数据库的性能,便于维护和备份,并且可以对不同分区...

    mysql如何进行分区-mysql分区有哪些方法.docx

    1. **存储能力增强**:相比于单一的磁盘或文件系统分区,MySQL 分区可以存储更多数据。 2. **数据清理便捷**:可以更简单地删除不再需要或过时的数据。 3. **查询优化**:某些查询可以直接在特定分区上执行,减少...

    创建mysql表分区的方法

    【MySQL 表分区详解】 MySQL 表分区是一种高级的数据组织技术,它允许将大型表分成较小、更易管理和处理的部分。这种技术对于处理海量数据,尤其是超过亿级别的数据集非常有效,可以显著提升查询性能和数据管理效率...

    MySQL分区管理工具

    MySQL分区管理工具是一种优化数据库性能的技术,它将大型表分解为更小、更易管理的部分,以提高查询效率和数据管理的便利性。在MySQL中,分区主要基于表的数据,根据预定义的规则将数据分布到不同的物理部分。这样...

    zabbix_mysql分区1

    总的来说,Zabbix的MySQL分区优化是一个涉及数据库设计和管理的重要环节。通过合理地利用分区技术,可以有效应对大规模监控数据的挑战,保持Zabbix系统的高效运行。不过,务必根据你的实际情况进行调整,并考虑其他...

    MySQL分区实战

    #### 一、MySQL分区概述与应用场景 在当今互联网行业中,MySQL数据库作为最常用的关系型数据库之一,在数据管理方面扮演着极其重要的角色。随着数据量的不断增长,对数据库性能的要求也日益提高。为了提高查询效率...

    MySQL分区表:万字详解与实践指南

    ### MySQL分区表:万字详解与实践指南 #### 一、引言 在现代数据库管理中,随着数据量的不断增长,如何高效管理和查询数据成为了一个重要的课题。MySQL作为广泛使用的开源关系型数据库管理系统之一,提供了多种强大...

    MySQL分区技术在传统项目中的应用.pdf

    MySQL分区技术是一种将数据库中的表分成多个较小的、更易于管理的部分的策略,它通过将数据分布到不同的物理区域来提升数据库性能。这种技术在处理大量数据的传统项目中尤为重要,可以帮助改善数据库的扩展性、管理...

    MySQL分区分表的设计及实现-收藏备用.pdf

    ### MySQL分区分表的设计及实现 #### 一、引言 随着信息技术的飞速发展,数据量呈现爆炸式增长,海量数据的管理和处理成为了一项挑战。尤其在关系型数据库中,如MySQL这样的系统,当单个表的数据量达到一定规模后...

    MySQL分区和分表技术总结.docx

    MySQL 分区和分表技术总结 MySQL 分区和分表技术是数据库性能优化的重要手段,特别是在大型数据库系统中。以下是 MySQL 分区和分表技术的详细介绍: 什么是分表? 分表是将一个大表按照一定的规则分解成多张具有...

Global site tag (gtag.js) - Google Analytics