MySQL分区技术

原文:MySQL分区技术

针对海量数据的优化主要有两种:

大表拆小表的方式;SQL语句的优化

 

分区技术:

与水平分割类似,但它是在逻辑层进行的水平分表,对于应用程序而言它还是一张表

 

一、range方式

1、创建一张分区表

 

可以到/usr/local/mysql/var/test/下看到生成这么多文件(26个)


 

 2、创建一张未分区表


 可以到/usr/local/mysql/var/test/下看到生成3个对应的文件


 

3、建立load_part_tab存储

 

4、添加800W条数据


 在/usr/local/mysql/var/test/下使用命令: watch -n1 ls -lh 动态查看插入数据各分区的动态变化

用top令可查看CUP、内存的使用情况


 

5、在未分区表也插入这么多数据


 

6、测试sql性能

 

查看受影响行数
 

 

创建索引

 


 

再测试sql性能


 

增加未索引字段查询

时间: 2024-10-30 12:57:57

MySQL分区技术的相关文章

Mysql分区技术的实例

一.查看当前MySQL是否支持分区技术 二.使用HASH实现一个简单测试案例 1.建立一个分区表 2.查看数据库文件初始状态 计算实例"> 3.写一个存储过程生成100万条记录 4.查看存储后的数据文件,可以看到数据均匀分布

Mysql分区技术的理论

一.基本理论 在mysql大数据处理上,水平分表技术是很常用的,但是分表技术带来了PHP处理的很大开销,为了解决这个弊端Mysql5.1以后以插件的方式增加了一个新的技术--分区技术. 分区技术是在逻辑层进行的水平分表,对于应用程序而言还是一张表,Mysql5.1有4种分区类型 1.RANGE:基于属于一个给定连续区间的列值,把多行分配给分区. 2.LIST :类似于RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行 选择 3.HASH :基于用户定义的表达式的返回

MySQL中表分区技术详细解析_Mysql

MySQL 分区技术(是mysql 5.1以版本后开始用->是甲骨文mysql技术团队维护人员以插件形式插入到mysql里面的技术) 1.概述 数据库单表到达一定量后,性能会有衰减,像mysql\sql server等犹为明显,所以需要把这些数据进行分区处理.同时有时候可能出现数据剥离什么的,分区表就更有用处了! MySQL 5.1 中新增的分区(Partition)功能就开始增加,优势也越来越明显了: 与单个磁盘或文件系统分区相比,可以存储更多的数据 很容易就能删除不用或者过时的数据 一些查询

高性能的MySQL(7)分区技术详解

在我之前的2篇博客中已经简单介绍过MySQL5.1之后的分区技术的基本理论和分区技术的表存储文件及特点,博客地址如下: http://janephp.blog.51cto.com/4439680/1305220 http://janephp.blog.51cto.com/4439680/1305937 今天要介绍一下分区技术一些使用场景和机制. MySQL实现分区表的方式--对底层表封装--意味着索引也按照分区的子表定义的,而没有全局索引. 一.在下面的场景中,作用非常大: 1.表非常大无法全部

Mysql数据表分区技术PARTITION浅析_Mysql

在这一章节里, 我们来了解下 Mysql 中的分区技术 (RANGE, LIST, HASH)   Mysql 的分区技术与水平分表有点类似, 但是它是在逻辑层进行的水平分表, 对于应用而言它还是一张表, 换句话说: 分区不是实际真正的对一张表进行拆分,分区之后表还是一个表,它是把存储文件进行拆分. 在 Mysql 5.1(后) 有了几种分区类型:   RANGE分区: 基于属于一个给定连续区间的列值, 把多行分配给分区 LIST分区: 类似于按 RANGE 分区, 区别在于 LIST 分区是基

【JAVA秒会技术之玩转SQL】MySQL优化技术(二)

MySQL优化技术(二) [前文连接]MySQL优化技术(一) (五)常用SQL优化 1.默认情况,在使用group by 分组查询时,会先分组,其后还会默认对组内其他条件进行默认的排序,可能会降低速度.这与在查询中指定order by col1, col2类似. 如果查询中包括group by但用户想要避免排序结果的消耗,则可以使用order by null禁止排序. 例子:   2.尽量使用左连接(或右连接)来替代普通多表联查.因为使用JOIN,MySQL不需要在内存中创建临时表.    s

MySQL分区与主从的学习笔记

1 分区相关 MySQL5.6中,分区技术只支持水平分区,而不支持垂直分区,分区支持大部分的存储引擎,但是MERGE, CSV, FEDERATED存储引擎不支持. 使用KEY或者LINEAR KEY进行分区是支持NDB(网络数据库)的,但是其他分区方式不支持. 在MySQL中查看是否是支持分区技术,使用命令 SHOW PLUGINS 进行查看,如果存在名称为 partition 的插件,状态为 ACTIVE 则说明分区技术可用. MySQL5.6支持显式的分区查询,如 SELECT * FRO

mysql分区方案的研究

   笔者觉得,分库分表确实好的.但是,动不动搞分库分表,太麻烦了.分库分表虽然是提高数据库性能的常规办法,但是太麻烦了.所以,尝试研究mysql的分区到底如何.  之前写过一篇文章,http://www.cnblogs.com/wangtao_20/p/7115962.html 讨论过订单表的分库分表,折腾起来工作量挺大的,需要多少技术去折腾.做过的人才知道有多麻烦      要按照什么字段切分,切分数据后,要迁移数据;分库分表后,会涉及到跨库.跨表查询,为了解决查询问题,又得用其他方案来弥补

mysql 5 mysql 5 技术内幕

mysql 5 mysql 5 技术内幕: http://www.kitebird.com/mysql-book/4ed.php