#!/bin/bash

#按年分区,每年的12月份执行该脚本

table=tablexxx

mysql=/usr/local/mysql/bin/mysql

user=xxx

password=xxxx

#MySQL添加分区的时候,不需要指定字段名称

str_0="alter TABLE $table add partition ("

str_1="PARTITION p"

str_2="VALUES LESS THAN (unix_timestamp('"

str_4=") ENGINE = InnoDB);"

str_3="')"

str_all=''

now_month=`date +%m`

i=1

#按年分区

while [ $i -lt 13 ] #一次添加12个分区

do

month=`date -d "-${i} month ago " +%Y%m` #年月,格式如201607

let j=i+1

day=`date -d "-${j} month ago " +%Y-%m`"-01" #年月日,格式如2016-08-01

str_line="${str_0}$str_1${month} $str_2${day}${str_3}$str_4\n"

#格式如:alter TABLE tablexxx add partition (PARTITION p201607 VALUES LESS THAN (unix_timestamp('2016-08-01')) ENGINE = InnoDB);

#  echo $str_line

str_all=$str_all${str_line}

let i=i+1

done

#echo -e  $str_all

mysql -u$user -p$password -e "use tmp;CREATE TABLE if not exists  tablexxx  (  id  int(11) NOT NULL AUTO_INCREMENT, ips  varchar(50) DEFAULT NULL COMMENT '访客IP', from_linkid  int(11) DEFAULT NULL COMMENT '链接的ID号', adddate  int(11) DEFAULT NULL COMMENT '访问时间', HTTP_REFERER  varchar(300) DEFAULT NULL COMMENT '来源', location_url  varchar(255) NOT NULL DEFAULT '' COMMENT '当前url',PRIMARY KEY ( id , adddate ),KEY  from_linkid  ( from_linkid ),KEY  idx_referer  ( HTTP_REFERER (255)),KEY  idx_adddate  ( adddate )) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='网站联盟-来访IP记录'PARTITION BY RANGE (adddate)( PARTITION p201506 VALUES LESS THAN (unix_timestamp('2015-07-01')), PARTITION p201507 VALUES LESS THAN (unix_timestamp('2015-08-01')),  PARTITION p201508 VALUES LESS THAN (unix_timestamp('2015-09-01')));"

mysql -u$user -p$password -e "use tmp;$str_all"

mysql维护分区脚本_MySQL 分区表脚本相关推荐

  1. mysql 表分区优缺点_Mysql分区表局限性总结

    本文测试的版本 XML/HTML代码 mysql>select version(); +------------+ | version() | +------------+ | 5.1.33-l ...

  2. mysql 交换分区吗_MySQL分区表——交换分区

    从MySQL 5.6开始,支持分区交换.就是将一个分区表中的一个分区和一个普通表中的数据互换.一.实现交换分区的基本语法:ALTER TABLEptEXCHANGE PARTITIONpWITH TA ...

  3. mysql hash分区 数目_MySQL 分区

    MySQL 分区 分区是指根据一定的规则,把一个表分解成多个更小更易管理的部分,逻辑上只有一个表或一个索引, 但是实际上该表可能由数个物理分区对象组成,每个分区都是一个独立的对象,每个分区可以独自处理 ...

  4. mysql维护分区脚本_mysql 5.6 分区维护

    本人英语不好,如下翻译有不当之处敬请纠正: 表和分区的一些维护任务,适用于在mysql5.6的分区表上用sql语句进行. 维护分区表,可以使用支持分区表的语句:CHECK TABLE, OPTIMIZ ...

  5. mysql 分区 目的_MySQL分区表最佳实践

    前言: 分区是一种表的设计模式,通俗地讲表分区是将一大表,根据条件分割成若干个小表.但是对于应用程序来讲,分区的表和没有分区的表是一样的.换句话来讲,分区对于应用是透明的,只是数据库对于数据的重新整理 ...

  6. php mysql备份脚本_MySQL备份脚本,mysql脚本

    MySQL备份脚本,mysql脚本 mysqlbackup.php: php//备份mysql set_time_limit(0); date_default_timezone_set('PRC'); ...

  7. 查找mysql的分区情况_MySQL 5.5 查看分区表的执行计划

    --创建测试表 mysql> CREATE TABLE trb1 (id INT, name VARCHAR(50), purchased DATE) ->     PARTITION B ...

  8. mysql员工脚本_mySQL常用脚本汇总

    @ mysql的常用脚本有哪些呢?我们来做个总结 建表语句 sql语句最后指定主键 DROP TABLE IF EXISTS `user_info1`; CREATE TABLE `user_info ...

  9. shell mysql备份脚本_mysql备份脚本(shell)

    mysql数据库shell备份脚本 任何项目的运行都离不开数据,持久化数据对于一个企业尤为重要,任何时候都不可掉以轻心,下面是我自己写的一个shell脚本,用来备份数据,分享给大家. #!/bin/b ...

  10. MySQL分区总结_mysql分区表小结2

    更改分区类型 如果想更改分区类型,只需调用alter table partition by即可,比oracle要简便: --将range分区改为key分区 CREATE TABLE trb3 (id ...

最新文章

  1. python中的异常(try...except...else...finally)
  2. 大多数Web浏览器中都可以使用PUT,DELETE,HEAD等方法吗?
  3. docker 开机自启动
  4. Application Loader:上传卡在App Store正在通过iTunes Store鉴定
  5. spring mvc错误收集
  6. java 继承 extends_java中的继承 (extends) 详解
  7. wordmaker html转为word,PHP HTML生成word
  8. 设计模式之单例模式8种实现方式,其七:静态内部类
  9. Factory method ‘redisConnectionFactory‘ threw exception; nested exception is java.lang.NoClassDefFou
  10. 利用SAN做数字化世界的基石
  11. spring异常处理器
  12. charshow需求说明
  13. 与孩子一起学编程04章
  14. mid、mif文件转shapefile、geojson等格式的数据
  15. 实验七 TCP/IP协议分析
  16. 2015年仿团800首页视频教程
  17. 基于Python的geopandas库处理矢量几何的教程
  18. 未明学院:保姆级四大par面面经和准备方法
  19. 淡墨写韵,不守起承转合
  20. MDK Keil编译程序出现..\source\main.c(118): warning: #69-D: integer conversion resulted in truncation问题

热门文章

  1. Django 数据流程图
  2. EF+泛型修改方法(查询修改和不查询修改)
  3. 无法验证的代码未能通过策略检查
  4. String 类实现 以及 流插入/流提取运算符重载
  5. 深圳中专计算机专业排名,深圳十大民办中专排行2019
  6. 2.基于梯度的攻击——FGSM
  7. Mutes锁_递归锁_信号量semaphore
  8. Docker系列教程27-在生产环境中使用Docker Compose
  9. Go Get设置代理
  10. 洛谷——P1744 采购特价商品