MYSQL分区表详解
分区表对用户来说是一个独立的逻辑表,但是底层是多个物理字表组成的。分区代码实际上是对一组底层表的句柄对象封装。对分区表的请求,都会通过句柄对象转化成储存引擎的接口调用。所以分区对于SQL层来说是一个完全封装底层实现的黑盒子,对应用是透明的。但是底层每个分区都有个使用#分割命名的表文件。
Mysql实现分区的方式--对底层表的封装--意味着索引也按照分区的子表定义的。但是没有全局索引。
和其他数据库一样patition by关键字定义分区,存放分区数据。在执行查询是,优化器会根据分区定义过滤我们不需要的分区,这样无需扫描所有分区。
分区的一个主要的目的是将数据按照一个教粗的粒度分在不同的表中。这样做可以将所有相关的数据放在一起。批量删除和更新操作就会特别的快。
适用场景:
1. 表非常大无法加载内存,或者只有表尾部分数据有有点数据,其他都是历史数据。
2. 分区表数据更好维护。比如删除批量数据通过整个分区。还可以对独立的分区进去优化,检查,和修复等。
3. 分区表可以分散到不同的物理设备上面,高效利用设备。
4. 可以避免某些特殊的瓶颈。例如InnoDB的单个索引互斥访问。 ext3文件系统的inode锁竞争等。
5. 在数据量特别大的情景,可以分区进行备份或者恢复。
分区局限:
1. 一个分区表最多只能有1024个分区。
2. 分区字典如果有主键和唯一索引的列,那么所有的主键列和唯一索引列必须包含进来。
3. 分区表无法使用外键约束。
5. 5.1版本中,分区表达式必须是整数,或者整数的表达式。在5.5后,某些场景可以直接使用列进行分区。
分区原理:
---未完待续
MYSQL分区表详解的更多相关文章
- mysql 分区表详解
项目中要一张库表实现 list分区.并且支持多种数据库. oracle 很顺利,只是mysql 听说5.1版本就已经支持了, 可是试了很多个版本,都不行,后来查到原因是要5.5 以上版本 分区才支持 ...
- MySQL 数据类型 详解
MySQL 数据类型 详解 MySQL 的数值数据类型可以大致划分为两个类别,一个是整数,另一个是浮点数或小数.许多不同的子类型对这些类别中的每一个都是可用的,每个子类型支持不同大小的数据,并且 My ...
- mysql存储过程详解
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...
- mysql 存储过程详解 存储过程
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成 ...
- MySQL配置文件详解
MYSQL 配置文件详解 “全局缓存”.“线程缓存”,全局缓存是所有线程共享,线程缓存是每个线程连接上数据时创建一个线程(如果没有设置线程池),假如有200连接.那就是200个线程,如果参数设定值是1 ...
- MySQL存储过程详解 mysql 存储过程
原文地址:MySQL存储过程详解 mysql 存储过程作者:王者佳暮 mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储 ...
- Mysql Explain 详解
Mysql Explain 详解[强烈推荐] Mysql Explain 详解一.语法explain < table_name >例如: explain select * from t3 ...
- MySQL存储过程详解 mysql 存储过程(二)
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL ...
- MySQL权限详解
MySQL权限级别介绍 MySQL权限级别 全局性的管理权限,作用于整个MySQL实例级别 数据库级别的权限,作用于某个指定的数据库上或者所有的数据库上 数据库对象级别的权限,作用于指定的数据库对象上 ...
随机推荐
- Linux命令累积
常用命令 ipconfig -查看本机ip.接口等信息 ping ip -ping远程服务器或终端 cd ~ -返回根目录 cd .. 返回上级目录 cd ../.. 返回上两级目录 ...
- 转 XlsReadWriteII 的博文(自留参考)
如何使用XlsReadWriteII在Delphi中读取Excel文件 XLSReadWriteII v5.20.01a for Delphi XE5 x32下载地址: http://download ...
- c++缓冲区------c++ Primer Plus
通常,通过使用缓冲区可以更高效地处理输入和输出.缓冲区是用作中介的内存块,它是将信息从设备传输到程序或从程序传输给设备的临时存储工具.通常,像硬盘驱动器这样的设备以512字节(或更多)的块为单位来传输 ...
- string类------新标准c++程序设计
定义: string类是STL中basic_string模板实例化得到的模板类.其定义如下: typedef basic_string<char>string; 构造函数: string类 ...
- CSS3 transition 属性——逐渐变慢/匀速/加速/减速/加速然后减速
ease: 1.ease:(逐渐变慢)默认值 2.linear:(匀速) 3.ease-in:(加速) 4.ease-out:(减速) 5.ease-in-out:(加速然后减速) 6.cubic-b ...
- linux防火墙(一)—— iptables架构介绍
一.防火墙的分类 一般宏观来说,防火墙分为主机型防火墙,例如我们为了防止个人电脑被攻击,而开启的防火墙,还分为网关型防火墙,一般部署在企业的网关,用于过滤和转发,保证整个企业的网络环境安全性. 按照物 ...
- hexo的jacman主题配置
获得更多资料欢迎进入我的网站或者 csdn或者博客园 这是在我搭建博客时用的主题,这个主题时基于pacman修改的,同时我也是借助于wuchong同时他还在一直更新.一下时我的一些基本配置: 相关文章 ...
- 14、OpenCV Python 直线检测
__author__ = "WSX" import cv2 as cv import numpy as np #-----------------霍夫变换------------- ...
- win7下钩子失效解决方案
win7键盘钩子失效解决方法:1.win开始右键+r(运行) 2.将其输入regedit.exe(注册表管理器),回车打开注册表管理器 3.进入HKEY_LOCAL_MACHINE4.进入到SYS ...
- C语言——从入门到精通,从精通到放弃
从第一次在CB上运行处 Hello World开始,哈哈哈哈,便开始各种幻想,哈哈哈哈,想着这就入门了,哈哈哈哈,我果然是个天才,哈哈哈哈. 后来啊,if-else语句,for 语句,while语句, ...