概述

前面已经介绍了mysql一些分区内容,所以下面主要简单做个实验,然后看下分区表有什么优势。


1、环境准备

1.1、创建如下分区表

CREATE TABLE part_tab( c1 int default NULL,c2 varchar(30) default NULL,c3 date default NULL) engine=myisamPARTITION BY RANGE (year(c3)) (PARTITION p0 VALUES LESS THAN (1995),PARTITION p1 VALUES LESS THAN (1996) , PARTITION p2 VALUES LESS THAN (1997) ,PARTITION p3 VALUES LESS THAN (1998) , PARTITION p4 VALUES LESS THAN (1999) ,PARTITION p5 VALUES LESS THAN (2000) , PARTITION p6 VALUES LESS THAN (2001) ,PARTITION p7 VALUES LESS THAN (2002) , PARTITION p8 VALUES LESS THAN (2003) ,PARTITION p9 VALUES LESS THAN (2004) , PARTITION p10 VALUES LESS THAN (2010),PARTITION p11 VALUES LESS THAN MAXVALUE );

1.2、创建一个不分区的表

create table no_part_tab(c1 int(11) default NULL,c2 varchar(30) default NULL,c3 date default NULL) engine=myisam;

2、准备数据

2.1、创建一个生成1000000行数据的存储过程:

delimiter //CREATE PROCEDURE load_part_tab()begindeclare v int default 0; while v < 1000000 do insert into part_tab values (v,'testing partitions',adddate('1995-01-01',(rand(v)*36520) mod 3652)); set v = v + 1; end while; end //

2.2、调用存储过程,生成数据(本来想1千万的,这数据库性能比较差,所以改成100万)

mysql> delimiter ;mysql> call load_part_tab();mysql> insert into no_part_tab select * from part_tab;

3、开始测试

mysql> select count(*) from no_part_tab where c3 > date '1995-01-01' and c3 < date '1995-12-31';mysql> select count(*) from part_tab where c3 > date '1995-01-01' and c3 < date '1995-12-31';

因为数据量不是特别大,所以可以看到速度有一定下降,但差距不是很明显,下面看一下查询计划。


4、查看执行计划

mysql> explain select count(*) from no_part_tab where c3 > date '1995-01-01' and c3 < date '1995-12-31'G;mysql> explain partitions select count(*) from part_tab where c3 > date '1995-01-01' and c3 < date '1995-12-31'G;

到这里关于分区的实验就做完了,大家有空也可以自己测试一下,把数据量提上去看看,后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注下!

mysql mssql 性能对比_详解mysql分区实验测试--非分区表与分区表的性能对比相关推荐

  1. mysql通配符escape使用_详解MySQL like如何查询包含'%'的字段(ESCAPE用法)

    在SQl like语句中,比如 SELECT * FROM user WHERE username LIKE '%luchi%' SELECT * FROM user WHERE username L ...

  2. mysql通配符escape使用_详解MySQL like如何查询包含#39;%#39;的字段(ESCAPE用法)-MySQL教程-Web开发者网...

    在SQl like语句中,比如 SELECT * FROM user WHERE username LIKE '%luchi%' SELECT * FROM user WHERE username L ...

  3. mysql mgr 三节点_详解MySQL 5.7 MGR单主确定主节点方法

    我们行MGR年底要上线了,每天都要看官方文档学习,做测试,坚持每天写一个小知识点,有想一起学习的么~ MySQL 5.7 MGR单主确定主节点是哪个,我们可以通过成员ID来判断,然后结合read_on ...

  4. mysql 编辑数据库内容_详解mysql数据库增删改操作

    插入数据 insert into 表名(列名1,列名2,列名3) values(值1,值2,值3); insert into user(user_id,name,age) values(1,'nice ...

  5. mysql临键锁_详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)

    详解 MySql InnoDB 中的三种行锁(记录锁.间隙锁与临键锁) 前言 InnoDB 通过 MVCC 和 NEXT-KEY Locks,解决了在可重复读的事务隔离级别下出现幻读的问题.MVCC  ...

  6. mysql 的dcl语句_详解MySQL第三篇—DCL语句

    DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句.这些语句定义了数据库.表.字段.用户的访问权限和安全级别.主要的语句关键字包括 g ...

  7. 操作 mysql 不生成日志_详解MySQL的日志

    MySQL日志 MySQL的日志记录了MySQL的日常操作和错误信息,通过这些日志我们可以知道MySQL内部发生的事情,可以为MySQL的优化和管理提供必要的信息. MySQL的日志主要有:二进制日志 ...

  8. mysql update 并发 慢_详解Mysql的锁机制

    一.Mysql为什么要加锁 锁机制用于管理对共享资源的并发访问,是对数据库的一种保护机制,也是数据库在事务操作中保证事务数据一致性和完整性的一种机制.当有多个用户并发的去存取数据时,在数据库中就可能会 ...

  9. mysql删除数据库恢复_详解MySQL数据库恢复误删除数据

    血的教训,事发经过就不详述了.直接上操作步骤及恢复思路(友情提示:数据库的任何操作都要提前做好备份),以下是Mysql数据后的恢复过程: 1. 找到binlog 恢复数据的前提是必须开启Mysql的b ...

  10. mysql事件调度定时任务_详解MySQL用事件调度器Event Scheduler创建定时任务

    前言 事件调度器相当于操作系统中的定时任务(如:Linux中的cron.Window中的计划任务),但MySql的事件调度器可以精确到秒,对于一些实时性要求较高的数据处理非常有用. 1. 创建/修改事 ...

最新文章

  1. 从“诺奖级”成果到“非主观造假”,时隔6年,韩春雨带着原一作,再发高分文章!...
  2. Linux下提示命令找不到
  3. 宋体、文件-Ubuntu Linux中配置adb-by小雨
  4. Python oct 函数 - Python零基础入门教程
  5. Facebook 开源首个全卷积语音识别工具包 wav2letter++
  6. I/O设备与主机的联系方式
  7. ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  8. MinIO异常the region is wrong; expecting ‘us-east-1‘
  9. Hellow Python之打包 exe 文件超级试错
  10. first season twenty-third episode,Ben was born!!!,Hi Ben???
  11. 【模板】数据结构之STL常用容器
  12. Android开发(四):在标题栏右上角实现菜单(三个点)
  13. 阿里云视频直播使用详细步骤
  14. 只有程序员才能看懂的16张高端漫画
  15. 你真的了解中兴吗?带你认识科技品牌 刷新认知
  16. 从零开始创建一个uni-app项目
  17. IntelliJ IDEA 使用svn教程
  18. Mysql学习之constraint/key/primary key/unique/foreign key/constraint的关系
  19. MessagePack简介与在Python中使用msgpack
  20. mac引导linux系统,最新Xp+Win7+Mac+Ubuntu四系统BootThink完美引导打造教程!

热门文章

  1. 一篇关于arc下内存管理的老文章,包含各种冷门修饰符(关于内存),写的较好,mark...
  2. J2EE基础之EJB
  3. 脱壳_详细_使用的方法_03
  4. 基于Bootstrap的后台通用模板
  5. [Unity3D]自制UnityForAndroid二维码扫描插件
  6. Android---Textview加入Intent、表情,点击跳转Activity
  7. 【Spring-IOC】依赖注入
  8. Java 对象布局、大小工具 jar包工具类jol
  9. 数据结构之B+树删除详解
  10. 再谈mysql之执行计划explain