MySQL基础:大幅度提高性能方案,分区表

下面就笔者工作中遇到的时间问题,模拟一下情况对大家进行介绍.

工作中仍然是海量数据出现的情况.每年大概会有几亿条记录.而且数据的时效性比较强.但历史数据仍然要求保留.这个时候经过分析和研究,最终决定通过时间字段进行分区.下面是分区表的创建代码.读者门在插入了不同年份时间段以后,可以时间字段为条件进行查询,可以看到数据库扫描过的区段.

Sql代码

CREATE TABLE part_data
      (c1 int default NULL,
  c2 varchar(30) default NULL,
  c3 date default NULL)
  partition by range (to_days(c3))
 (PARTITION p0 VALUES LESS THAN (to_days('1995-01-01')),
 PARTITION p1 VALUES LESS THAN (to_days('1996-01-01')) ,
 PARTITION p2 VALUES LESS THAN (to_days('1997-01-01')) ,
 PARTITION p3 VALUES LESS THAN (to_days('1998-01-01')) ,
 PARTITION p4 VALUES LESS THAN (to_days('1999-01-01')) ,
 PARTITION p5 VALUES LESS THAN (to_days('2000-01-01')) ,
 PARTITION p6 VALUES LESS THAN (to_days('2001-01-01')) ,
 PARTITION p7 VALUES LESS THAN (to_days('2002-01-01')) ,
 PARTITION p8 VALUES LESS THAN (to_days('2003-01-01')) ,
 PARTITION p9 VALUES LESS THAN (to_days('2004-01-01')) ,
 PARTITION p10 VALUES LESS THAN (to_days('2010-01-01')),
 PARTITION p11 VALUES LESS THAN MAXVALUE );

分区查询,可以查看扫描过的区段.当然要加上where子句,以c3时间为条件进行检索.若不使用时间字段,分区将失去作用.

Sql代码

explain partitions select * from part_data\G

查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/MySQL/

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索less
, sublime3 less
, 分区表
, 时间
, values
, partition
than
,以便于您获取更多的相关知识。

时间: 2024-10-23 19:30:57

MySQL基础:大幅度提高性能方案,分区表的相关文章

HTAP数据库——HybirdDB for MySQL产品和典型方案介绍

随着DT时代的到来,企业占有的数据越来越多,其规模可能达到上百TB甚至PB级,如何以合理的成本管理并维护这样一个数据库也成为各个企业IT管理中的核心问题.HybirdDB for MySQL是基于HTAP资源的数据库,同时支持OLTP,在一份数据上做事务,又支持实时分析.10月12日的云栖大会·HTAP技术专场中,阿里云产品专家陈琢分享了阿里云自研的HTAP数据库,并重点分享了相关技术及实现.如何借助HTAP技术解决业务痛点等内容. 本文分享的内容主要包括五个部分,首先是阿里云数据库产品团队的情

MySQL大表优化方案

MySQL大表优化方案 mysql   manong 2016年08月03日发布 当MySQL单表记录数过大时,增删改查性能都会急剧下降,可以参考以下步骤来优化: 单表优化 除非单表数据未来会一直不断上涨,否则不要一开始就考虑拆分,拆分会带来逻辑.部署.运维的各种复杂度,一般以整型值为主的表在千万级以下,字符串为主的表在五百万以下是没有太大问题的.而事实上很多时候MySQL单表的性能依然有不少优化空间,甚至能正常支撑千万级以上的数据量: 字段 尽量使用TINYINT.SMALLINT.MEDIU

MySQL单机多实例方案部署

MySQL单机多实例方案,是指在一台物理服务器上运行多个MySQL数据库实例. MySQL单机多实例的优点: 1.节省成本,减少服务器.IP.机柜的数量,总体运营成本低于单机单实例方案. 2.提升利用率,利用NUMA特性,对MySQL实例进行CPU绑定. 3.提升用户体验,大幅度提高IO响应时间,有助于提升用户的体验. MySQL多实例部署的具体实施 1.MySQL多实例目录的规划(数据目录配置文件目录) 实例1 数据路径: /home/mysql/data 配置文件路径: /usr/local

1w条的excel表格导入mysql数据中性能的问题

问题描述 1w条的excel表格导入mysql数据中性能的问题 业务规则:1w条的excel表格导入mysql数据中,同时要校验数据的完整性和合法行以及判断是否是第一次导入:excel中每行记录对应数据库中两个表:原来的方案是把excel直接导入到临时表中,然后通过存储过程再把临时表数据中满足条件的数据抽取到目标表中:现在发现一个问题导入到临时表话费了将近100秒,再通过存储过程抽取到目标表(占时还没有写存储过程转换)中又将花费好多时间这给用户带来的体验不是很好.在这里请问各位有没有好的解决方案

MySQL临时表的优化方案

MySQL 是全球最受欢迎的开源数据库,作为开源软件组合 LAMP(Linux + Apache + MySQL + Perl/PHP/Python)中的重要一环,广泛应用于各类应用.Web2.0 时代,风靡全网的社区论坛软件系统 Discuz 和博客平台 Wordpress 均基于 MySQL 实现底层架构.Web3.0 时代,阿里巴巴.Facebook.Google 等大型互联网公司都采用更为灵活的 MySQL 构建了成熟的大规模数据库集群.阿里云数据库 MySQL 版基于 Alibaba

Oracle和MySQL的高可用方案对比(二)

对比 昨天聊了一篇关于高可用方案中Oracle的RAC和MySQL的MHA的对比. 今天来说下Oracle的DG和MySQL的方案对比,相比来说,可能这方面MySQL会单薄一些,所以文末会说下InnoDB Cluster. 在灾备的概念中,Oracle DBA喜欢叫做主备,即为Primary,Standby,而MySQL喜欢叫做主从,即为Master,Slave 首先在Oracle中,数据是基于物理复制(此处说的都是physical standby),所以对于数据库的状态和角色就很好定位,从库正

Oracle和MySQL的高可用方案对比(一)

关于Oracle和MySQL的高可用方案,其实一直想要总结了,就会分为几个系列来简单说说.通过这样的对比,会对两种数据库架构设计上的细节差异有一个基本的认识.Oracle有一套很成熟的解决方案.用我在OOW上的ppt来看,是MAA的方案,今年是这个方案的16周年了. 而MySQL因为开源的特点,社区里推出了更多的解决方案,个人的见解,InnoDB Cluster会是MySQL以后的高可用方案标配. 而目前来看,MGR固然不错,MySQL Cluster方案也有,PXC,Galera等方案,个人还

获得MySQL改变字符集的方案

你是否对获得MySQL改变字符集的实际操作感到十分头疼?不用急,以下的文章将会给你正确的解答方案,以下的文章主要是介绍获得MySQL改变字符集的方案,下面就是相关内容的具体描述. ROR+MySQL5 utf8搭配问题解决方案 c# +MySQLDriver.dll 乱码问题 1.用 SET 语法来指定,不加 "GLOBAL" 的话就只对本次会话有效. SET [GLOBAL] character_set_client = utf8; SET [GLOBAL] character_se

PHP 和 MySQL 基础教程(三)

mysql|基础教程 用 cookies 来跟踪识别用户 让我们来看看保存在浏览器中的内容.如果你用的是 IE5 ,在 windows 目录下有一个 cookies 的目录,里面有很多文本文件,文件名都是类似于 wudong@15seconds[1].txt 这样的,这就是浏览器用来保存值的 cookies 了.在以前的 IE 版本中, cookies 的内容是可以察看的,但现在内容已经被编码了.在浏览器得到一个 Web 页面之前,它会先看这个页面的域名,是否在 cookie 中存在,如果有相比