• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > Mysql优化实验(一)-- 分区

Mysql优化实验(一)-- 分区

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了Mysql,优化实验,分区等相关知识,希望本文的分享对您有所帮助
开发项目过程中总是提到优化的概念,本篇文章是对Mysql数据优化实践的一次探索旅程,简要介绍了分区原因,方法,分区表管理方法和一次简单的实践。

【为什么分区】

在大数据操作时,将数据表分而治之,将一张数据量很大的表分为一个更小的操作单元,每一个操作单元都会有一个单独的名称。同时,对于程序开发人员来说,分区和没有分区是一样的,通俗来说,mysql分区对于程序应用是透明的,只是数据库对数据的一次重新整理操作。

分区作用:

(1)提升性能。

分区的最终目的是提升性能,分区完成后,mysql针对每个分区生成特定数据文件和索引文件,检索时通过检索特定的部分数据,因此更好的执行和维护数据库。这是因为分区后表被指派到不同的物理驱动器上,同时访问多个分区时减少分区物理I/O争用。

(2)易于管理。

分区后,管理数据可以直接管理对应的分区。操作简单,当数据达到百万级别时,直接操作分区远比操作数据表来的更加直接。

(3)容错

分区完成后,一个分区被破坏后,不会影响其他数据。

【分区方法】

mysql 的分区方法有:RANGE分区、LIST分区、HASH分区、KEY分区。

RANGE分区:根据某个字段的值来进行分区管理,是在直接创建表时进行的分区。eg:

create table emp
(empno varchar(20) not null ,
empname varchar(20),
deptno int,
birthdate date,
salary int
)
partition by range(salary)
(
partition p1 values less than (1000),
partition p2 values less than (2000),
partition p3 values less than maxvalue
);

LIST分区:类似于RANG分区,不同的是,list分区是一个个散列值,RANG分区是根据某个字段范围进行分区。eg:

create table emp
(empno  varchar(20) not null ,
empname varchar(20),
deptno  int,
birthdate date not null,
salary int
)
partition by list(deptno)
(
partition p1 values in  (10,15),
partition p2 values in  (20,25),
partition p3 values  in  (30,35)
);

HASH分区:确保数据在预先指定书目的分区中平均分布,分区时指定分区根据的列值和分区数量。eg:

create table emp
(empno varchar(20) not null ,
empname varchar(20),
deptno int,
birthdate date not null,
salary int
)
partition by hash(year(birthdate))
partitions 4;

KEY分区:类似于HASH分区,区别于KEY分区只支持计算一列或多列,MySQL服务器提供其自身哈希函数,必须有一列或者多列包涵整数值。eg:

create table emp
(empno varchar(20) not null ,
empname varchar(20),
deptno int,
birthdate date not null,
salary int
)
partition by key(birthdate)
partitions 4;

【分区的管理操作方法】

删除分区:

alter table emp drop partition p1;

不可以删除hash或者key分区。

一次性删除多个分区,alter table emp drop partition p1,p2;


增加分区:

alter table emp add partition (partition p3 values less than (4000));

alter table empl add partition (partition p3 values in (40));


分解分区:

Reorganizepartition关键字可以对表的部分分区或全部分区进行修改,并且不会丢失数据。分解前后分区的整体范围应该一致。

alter table te

reorganize partition p1 into

(

partition p1 values less than (100),

partition p3 values less than (1000)

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 分享下mysql各个主要版本之间的差异
  • MySQL essential版本和普通版本有什么区别?
  • redhat 5.4下安装MYSQL全过程
  • 如何用SQL命令查看Mysql数据库大小
  • 解析mysql中如何获得数据库的大小
  • 解析mysql修改为utf8后仍然有乱码的问题
  • 5个常用的MySQL数据库管理工具详细介绍
  • 解析在MySQL里创建外键时ERROR 1005的解决办法
  • 解析远程连接管理其他机器上的MYSQL数据库
  • mysql 精简过程(删除一些文件)

相关文章

  • 2018-12-05MySQL 性能优化,让数据库跑的更快
  • 2017-05-11Linux自动备份MySQL数据库脚本代码
  • 2018-12-05SQL数据操作基础(初级)5
  • 2018-12-05MySQL数据库之信息函数与加密函数
  • 2018-12-05SqlServer中的日期与时间函数
  • 2018-12-05MySQL在cmd和python下的常用操作解析
  • 2017-05-11MySQL 存储过程的基本用法介绍
  • 2017-05-11MYSQL explain 执行计划
  • 2018-12-05mysql与apt-get在ubuntu下卸载和安装
  • 2018-12-05删除表数据零基础入门教程汇总

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • SQL 外链接操作小结 inner join left join right join
    • 条件查询如何使用?总结条件查询实例用法
    • mysql5.0入侵测试以及防范方法分享
    • 关于MySQL的基础知识详解
    • mysql查询昨天 一周前 一月前 一年前的数据
    • MySQL触发器学习总结
    • Mysql主键相关的sql语句集锦
    • mysql 跨表查询、更新、删除示例
    • 在MySQL中用正则表达式替换数据库中的内容的方法
    • MySQL中的LOCATE和POSITION函数使用方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有