首页 数据库 mysql教程 MySQL分区表的使用_MySQL

MySQL分区表的使用_MySQL

Jun 01, 2016 pm 01:26 PM
服务器 驱动器

bitsCN.com

MySQL使用分区表的好处:

1,可以把一些归类的数据放在一个分区中,可以减少服务器检查数据的数量加快查询。2,方便维护,通过删除分区来删除老的数据。3,分区数据可以被分布到不同的物理位置,可以做分布式有效利用多个硬盘驱动器。
MySQL可以建立四种分区类型的分区:          RANGE 分区:基于属于一个给定连续区间的列值,把多行分配给分区。·         LIST 分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。  www.bitsCN.com  ·         HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值进行计算。这个函数可以包含MySQL 中有效的、产生非负整数值的任何表达式。·         KEY 分区:类似于按HASH分区,区别在于KEY分区只支持计算一列或多列,且MySQL 服务器提供其自身的哈希函数。必须有一列或多列包含整数值。一般用得多的是range分区和list分区。RANGE分区这里以一个销售的业务来做测试销售表有日期/商品/销售额三个字段测试数据从2010年1月1日至2010年9月31日以“月”为单位进行分区初期分区定义首先需要查看,当前数据库是否支持分区mysql>SHOW VARIABLES LIKE '%partition%';+-------------------+-------+| Variable_name     | Value |     +-------------------+-------+| have_partitioning | YES   | +-------------------+-------+1 row in set (0.03 sec) 创建分区表,按照年月的方式分区。
 1 mysql> CREATE TABLE sale_data ( 2     ->   sale_date  DATETIME NOT NULL, 3   4     ->   sale_item  VARCHAR(2) NOT NULL , 5   6     ->   sale_money DECIMAL(10,2) NOT NULL 7   8     -> )  www.bitsCN.com   9  10     -> PARTITION BY RANGE (YEAR(sale_date)*100+MONTH(sale_date)) (11  12     ->   PARTITION p201001 VALUES LESS THAN (201002),13  14     ->   PARTITION p201002 VALUES LESS THAN (201003),15  16     ->   PARTITION p201003 VALUES LESS THAN (201004),17  18     ->   PARTITION p201004 VALUES LESS THAN (201005),19  20     ->   PARTITION p201005 VALUES LESS THAN (201006),21  22     ->   PARTITION p201006 VALUES LESS THAN (201007),23  24     ->   PARTITION p201007 VALUES LESS THAN (201008),25  26     ->   PARTITION p201008 VALUES LESS THAN (201009),27  28     ->   PARTITION p201009 VALUES LESS THAN (201010),29  30     ->   PARTITION pcatchall VLAUES LESS THAN MAXVALUE31     -> );32  33 Query OK, 0 rows affected (0.20 sec)
登录后复制

新增分区

mysql> ALTER TABLE sale_data    ->   ADD PARTITION (PARTITION p201010 VALUES LESS THAN (201011)); Query OK, 0 rows affected (0.36 sec)Records: 0  Duplicates: 0  Warnings: 0
登录后复制

删除分区

--当删除了一个分区,也同时删除了该分区中所有的数据。mysql> ALTER TABLE sale_data DROP PARTITION p201010;Query OK, 0 rows affected (0.22 sec)  www.bitsCN.com  Records: 0  Duplicates: 0  Warnings: 0
登录后复制

分区的合并

下面的SQL,将p201001 - p201009 合并为3个分区p2010Q1 - p2010Q3

mysql> ALTER TABLE sale_data    ->   REORGANIZE PARTITION p201001,p201002,p201003,     ->                        p201004,p201005,p201006,     ->                        p201007,p201008,p201009 INTO     -> (     ->   PARTITION p2010Q1 VALUES LESS THAN (201004),     ->   PARTITION p2010Q2 VALUES LESS THAN (201007),     ->   PARTITION p2010Q3 VALUES LESS THAN (201010)     -> ); Query OK, 0 rows affected (1.14 sec)Records: 0  Duplicates: 0  Warnings: 0
登录后复制

分区的拆分

下面的SQL,将p2010Q1 分区,拆分为s2009 与s2010 两个分区

mysql> ALTER TABLE sale_data REORGANIZE PARTITION p2010Q1 INTO (     ->     PARTITION s2009 VALUES LESS THAN (201001),             www.bitsCN.com      ->     PARTITION s2010 VALUES LESS THAN (201004)     -> ); Query OK, 0 rows affected (0.36 sec)Records: 0  Duplicates: 0  Warnings: 0
登录后复制

一个利用不同物理位置数据源做分区的例子:

CREATE TABLE ts (id INT, purchased DATE)     ENGINE=innodb     PARTITION BY RANGE(YEAR(purchased))     SUBPARTITION BY HASH(id)     (         PARTITION p0 VALUES LESS THAN (1990)         (             SUBPARTITION s0                  //在大的分区下又有小的分区            DATA DIRECTORY='/usr/local/mysql/data0'      //数据源            INDEX DIRECTORY='/usr/local/mysql/index0',   //索引数据源            SUBPARTITION s1             DATA DIRECTORY='/usr/local/mysql/data1'             INDEX DIRECTORY='/usr/local/mysql/index1'         ),         PARTITION p1 VALUES LESS THAN (MAXVALUE)         (             SUBPARTITION s2             DATA DIRECTORY='/usr/local/mysql/data1'             INDEX DIRECTORY='/usr/local/mysql/index1',             SUBPARTITION s3             DATA DIRECTORY='/usr/local/mysql/data2'             INDEX DIRECTORY='/usr/local/mysql/index2'         )     ); 
登录后复制

 

分区索引的局限:1,所有分区都要使用同样的引擎。2,分区表的每一个唯一索引必须包含由分区函数引用的列。3,mysql能避免查询所有的分区,但仍然锁定了所有分区。4,分区函数能使用的函数和表达式有限,例如函数有上面的4种。5,分区不支持外键。  www.bitsCN.com  6,不能使用LOAD INDEX INTO CACHE7,分区并不能总是改善性能,要进行性能评测。例如可以使用expalin partitions 来查看查询语句是否使用分区过滤了数据:mysql> explain partitions select * from fenqubiao where day
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
2 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何在Windows 11中更新网络驱动器登录凭据 如何在Windows 11中更新网络驱动器登录凭据 Feb 19, 2024 pm 12:18 PM

为了增强网络驱动器的安全性,Microsoft支持使用密码来保护共享文件夹或网络驱动器。然而,为了确保持续的保护,我们需要定期更改网络驱动器的密码。本文将介绍在Windows11/10中如何更新网络驱动器的登录凭据。如何在Windows中更新网络驱动器登录凭据为了更新网络驱动程序的登录凭据,我们需要使用凭据管理器。这是Windows计算机上的一个预安装功能,可以通过控制面板访问。因此,请按照以下步骤执行相同的操作。点击Win+S,搜索“控制面板”,然后点击“打开”。将屏幕视图按比例更改为大图标。

电驴搜索连不上服务器如何解决 电驴搜索连不上服务器如何解决 Jan 25, 2024 pm 02:45 PM

解决办法:1、检查电驴设置,确保已输入正确的服务器地址和端口号;2、检查网络连接,确保计算机已连接到互联网,并重置路由器;3、检查服务器是否在线,如果您的设置和网络连接都没有问题,则需要检查服务器是否在线;4、更新电驴版本,访问电驴官方网站,下载最新版本的电驴软件;5、寻求帮助。

CentOS安装fuse及CentOS安装服务器详解 CentOS安装fuse及CentOS安装服务器详解 Feb 13, 2024 pm 08:40 PM

作为一名LINUX用户,我们经常需要在CentOS上安装各种软件和服务器,本文将详细介绍如何在CentOS上安装fuse和搭建服务器的过程,帮助您顺利完成相关操作。CentOS安装fuseFuse是一个用户空间文件系统框架,允许非特权用户通过自定义文件系统实现对文件系统的访问和操作,在CentOS上安装fuse非常简单,只需按照以下步骤操作:1.打开终端,以root用户登录。2.使用以下命令安装fuse软件包:```yuminstallfuse3.确认安装过程中的提示,输入`y`继续。4.安装完

无法连接到RPC服务器导致无法进入桌面的解决方法 无法连接到RPC服务器导致无法进入桌面的解决方法 Feb 18, 2024 am 10:34 AM

RPC服务器不可用进不了桌面怎么办近年来,计算机和互联网已经深入到我们的生活中的各个角落。作为一种集中计算和资源共享的技术,远程过程调用(RPC)在网络通信中起着至关重要的作用。然而,有时我们可能会遇到RPC服务器不可用的情况,导致无法进入桌面。本文将介绍一些可能导致此问题的原因,并提供解决方案。首先,我们需要了解RPC服务器不可用的原因。RPC服务器是一种

在 Windows 11 上启用 256 位 Bitlocker 加密以提高安全性 在 Windows 11 上启用 256 位 Bitlocker 加密以提高安全性 Nov 26, 2023 am 11:21 AM

Bitlocker是Windows操作系统的默认加密技术。它在Windows上被广泛使用,但一些用户更喜欢第三方解决方案,例如VeraCrypt。Bitlocker的许多用户不知道的是,它默认为128位加密,即使256位也可用。无需过多地介绍差异的细节;AES128位和256位加密之间的核心区别在于安全密钥的长度。更长的密钥使暴力攻击更加困难。虽然默认为128位,但即使是Microsoft也建议使用256位来提高安全性。问题是,大多数用户可能不知道较弱的默认值或如何进行更改。首先,您可能想知道W

如何将Dnsmasq配置为DHCP中继服务器 如何将Dnsmasq配置为DHCP中继服务器 Mar 21, 2024 am 08:50 AM

DHCP中继的作用是将接收到的DHCP数据包转发到网络上的另一个DHCP服务器,即使这两个服务器位于不同的子网中。通过使用DHCP中继,您可以实现在网络中心部署一个集中式的DHCP服务器,并利用它为所有网络子网/VLAN动态分配IP地址。Dnsmasq是一种常用的DNS和DHCP协议服务器,可以配置为DHCP中继服务器,以帮助管理网络中的动态主机配置。在本文中,我们将向您展示如何将dnsmasq配置为DHCP中继服务器。内容主题:网络拓扑在DHCP中继上配置静态IP地址集中式DHCP服务器上的D

用PHP构建IP代理服务器的最佳实践指南 用PHP构建IP代理服务器的最佳实践指南 Mar 11, 2024 am 08:36 AM

在网络数据传输中,IP代理服务器扮演着重要的角色,能够帮助用户隐藏真实IP地址,保护隐私、提升访问速度等。在本篇文章中,将介绍如何用PHP构建IP代理服务器的最佳实践指南,并提供具体的代码示例。什么是IP代理服务器?IP代理服务器是一种位于用户与目标服务器之间的中间服务器,它充当用户与目标服务器之间的中转站,将用户的请求和响应进行转发。通过使用IP代理服务器

epic服务器离线进不了游戏怎么办?epic离线进不了游戏解决方法 epic服务器离线进不了游戏怎么办?epic离线进不了游戏解决方法 Mar 13, 2024 pm 04:40 PM

  epic服务器离线进不了游戏怎么办?这个问题想必很多小伙伴都有遇到过,出现了此提示就是导致正版的游戏无法启动,那么出现这个问题一般是网络和安全软件干扰导致的,那么应该怎么解决呢,本期小编就来和大伙分享解决方法,希望今日的软件教程可以帮助各位解决问题。  epic服务器离线进不了游戏怎么办:  1、很可能是被安全软件干扰了,将游戏平台和安全软件关闭在重启。  2、其次就是网络波动过大,尝试重启一次路由器,看看是否有效,如果条件可以的话,可以尝试使用5g移动网络来进行操作。  3、然后有可能是更

See all articles