<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Mysql分區自動管理

       

      一、 MYSQL的分區表簡介

      1. 什么是表分區?

      是指根據一定規則,將數據庫中的一張表分解成多個更小的,容易管理的部分。從邏輯上看,只有一張表,但是底層卻是由多個物理分區組成。
      
      例如:
      CREATE TABLE `rangeyear_t1_kafka_consume_log` (
      `id` int(11) NOT NULL COMMENT 'id',
      `create_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '消息接收時間',
      PRIMARY KEY (`id`,`create_time`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8
      PARTITION BY RANGE (YEAR(create_time))
      (PARTITION p2012 VALUES LESS THAN (2012) ENGINE = InnoDB,
      PARTITION p2013 VALUES LESS THAN (2013) ENGINE = InnoDB,
      PARTITION p2014 VALUES LESS THAN (2014) ENGINE = InnoDB);
      
      cnsz22pl0015:cmdpsit > ll|grep rangeyear_t1_kafka_consume_log
      -rw-rw---- 1 mysql mysql   8889 Jun 18 13:55 rangeyear_t1_kafka_consume_log.frm
      -rw-rw---- 1 mysql mysql    128 Jun 18 13:55 rangeyear_t1_kafka_consume_log.par
      -rw-rw---- 1 mysql mysql  98304 Jun 18 11:27 rangeyear_t1_kafka_consume_log#P#p2012.ibd
      -rw-rw---- 1 mysql mysql  98304 Jun 18 11:27 rangeyear_t1_kafka_consume_log#P#p2013.ibd
      -rw-rw---- 1 mysql mysql  98304 Jun 18 11:27 rangeyear_t1_kafka_consume_log#P#p2014.ibd
      
      

      2. 表分區有什么好處?

       1)分區表的數據可以分布在不同的物理設備上,從而高效地利用多個硬件設備。 
       2)和單個磁盤或者文件系統相比,可以存儲更多數據 
       3) 優化查詢。在where語句中包含分區條件時,可以只掃描一個或多個分區表來提高查詢效率;涉及sum和count語句時,也可以在多個分區上并行處理,最后匯總結果,類似oracle庫中的分區修剪技術。
       4)分區表更容易維護。例如:想批量刪除大量數據可以truncate或者drop整個分區。
       5)可以使用分區表來避免某些特殊的瓶頸,例如InnoDB的單個索引的互斥訪問。
      
      例如:
      CREATE TABLE users (
      uid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
      name VARCHAR(30) NOT NULL DEFAULT ,
      email VARCHAR(30) NOT NULL DEFAULT 
      )
      PARTITION BY RANGE (uid) (
      PARTITION p0 VALUES LESS THAN (3000000)
      DATA DIRECTORY = '/data0/data'
      INDEX DIRECTORY = '/data1/idx',
      
      PARTITION p1 VALUES LESS THAN (6000000)
      DATA DIRECTORY = '/data2/data'
      INDEX DIRECTORY = '/data3/idx',
      
      PARTITION p2 VALUES LESS THAN MAXVALUE
      DATA DIRECTORY = '/data6/data'
      INDEX DIRECTORY = '/data7/idx'
      );
      

      3. 分區表的限制因素

       1)一個表最多只能有1024個分區 
       2)MySQL5.1中,分區表達式必須是整數,或者返回整數的表達式。在MySQL5.5中提供了非整數表達式分區的支持。MYSQL5.5之后支持整數、日期時間、字符串。 
       3)如果分區表有唯一索引(主鍵),所有分區表達式中的列必須包含在唯一索引(主鍵)中
       4)分區表中無法使用外鍵約束 
       5)MySQL的分區適用于一個表的所有數據和索引,不能只對表數據分區而不對索引分區,也不能只對索引分區而不對表分區,也不能只對表的一部分數據分區;即只有局部索引,沒有全局索引。
      

      4. 分區表的分類

      1)range分區, 按照數據的區間范圍分區(連續遞增)
      partition by range(exp)( //exp可以為列名或者表達式,比如to_date(created_date)
      partition p0 values less than(num)
      )
      # range范圍覆蓋問題:當插入的記錄中對應的分區鍵的值不在分區定義的范圍中的時候,插入失敗
      #分區鍵的值如果是NULL,將被作為一個最小值來處理
      2)LIST分區:按照List中的值分區(枚舉)
      partition by list(exp)( //exp為列名或者表達式
      partition p0 values in (3,5)  //值為3和5的在p0分區
      )
      #不適合分區經常變動的需求
      3)HASH分區 :主要用來分散熱點讀,使用取模算法
      partition by hash(store_id) partitions 4;
      #數據盡可能的均勻分布。 缺點:不適合分區經常變動的需求
      #mysql提供了線性hash分區,與普通hash分區相比起對分區變更處理更迅速,但數據分布不大均衡
      partition by LINER hash(store_id) partitions 4;
      4)Key分區,類似Hash分區,Hash分區允許使用用戶自定義的表達式,但Key分區不允許使用用戶自定義的表達式。Hash僅支持整數分區,而Key分區支持除了Blob和text的其他類型的列作為分區鍵。
      partition by key(exp) partitions 4;//exp是零個或多個字段名的列表
      5) Composite(復合模式)
      6) Columns分區,MySQL5.5中引入的分區類型,解決了5.5版本之前range分區和list分區只支持整數分區的問題。 Columns分區可以細分為 range columns分區和 list columns分區,他們都支持整數,日期時間,字符串三大數據類型。(不支持text和blob類型作為分區鍵) columns分區還支持多列分區。
      PARTITION BY RANGE  COLUMNS(create_time)
      (PARTITION p2015 VALUES LESS THAN ('2015-01-01') ENGINE = InnoDB,
       PARTITION p20180211 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB) 
      

       

      二、 MYSQL分區管理procedure的架構

      1. 分區管理的架構邏輯

      根據對總部所有mysql庫中的分區表的匯總和分析,主要的分區類型為range、range columns、hash;其中range分區占到62%,range columns分區占到23%;而這兩種分區類型中99%的分區鍵是按照時間字段作為分區的依據。所以針對SF分區表的使用情況,編寫了一套統一的分區管理工具。
      由上一節分區表的基礎知識介紹可得知range和range columns的區別,首先,兩種分區的關鍵字不同;其次range分區的依據可以是一個表達式range(exp),并且該表達式的值必須是一個整數,而range columns的分區依據不支持表達式,但可以是多個列RANGE  COLUMNS(create_time),其中列的類型也不限于整數,可支持時間,字符串。
      根據以上信息,mysql分區管理工具的架構邏輯如下圖所示
       
      上圖中紅色小字標識得為存儲過程的名字,首先,整個管理工具是由proc_main_partition發起調用,其次,proc_main_partition會讀取配置表main_partition_table_config中的表名、策略等信息,最后,根據配置信息調用指定的子存儲過程執行添加和刪除分區的操作。
      

      2. 各存儲過程的功能介紹

       proc_main_partition_config
       #該存儲過程的執行權限會授權給用戶,供用戶把業務表加入的分區管理策略當中,實現自動維護
       proc_main_partition
       #該procedure會根據配置表中的信息調用下面一系列的存儲過程
       proc_main_partition_range_nofunc
       #如為range類型的分區,且其分區鍵為遞增的數字時,該procedure完成其增刪分區的具體行為
       #如:PARTITION BY RANGE (store_id)
       proc_main_partition_range_day
       #如為range類型的分區,且其分區策略為按天分區,或者按周分區,該procedure完成其增刪分區的具體行為
       proc_main_partition_range_period
       #對于有些數據需要按照上旬、中旬、下旬的策略進行分區,比如6月,6.1-6.11之前為一個分區,6.11-6.21為一個分區,,6.21-7.01為一個分區
       #如為range類型的分區,且其分區策略為按上旬、中旬、下旬分區,該procedure完成其增刪分區的具體行為
       proc_main_partition_range_month
       #如為range類型的分區,且其分區策略為按月分區,該procedure完成其增刪分區的具體行為
       proc_main_partition_range_year
       #如為range類型的分區,且其分區策略為按年分區,該procedure完成其增刪分區的具體行為
       proc_main_part_rangecolumn_day
       #如為range columns類型的分區,且其分區策略為按天分區,或者按周分區,該procedure完成其增刪分區的具體行為
       proc_main_part_rangecolumn_period
       #對于有些數據需要按照上旬、中旬、下旬的策略進行分區,比如6月,6.1-6.11之前為一個分區,6.11-6.21為一個分區,,6.21-7.01為一個分區
       #如為range columns類型的分區,且其分區策略為按上旬、中旬、下旬分區,該procedure完成其增刪分區的具體行為
       proc_main_part_rangecolumn_month
       #如為range columns類型的分區,且其分區策略為按月分區,該procedure完成其增刪分區的具體行為
       proc_main_part_rangecolumn_year
       #如為range columns類型的分區,且其分區策略為按年分區,該procedure完成其增刪分區的具體行為
      

      3. 配置表的功能介紹

      main_partition_table_config
      #配置表,記錄加入分區自動維護的所有分區表的分區策略等信息
      main_partition_table_config_log
      #proc_main_partition_config存儲過程的執行log信息
      main_partition_operation_log
      #所有procedure執行的log信息,該表會記錄某個時間點對某個表做了什么操作
      main_partition_scheduler_log
      #所有procedure調用的log信息,該表主要用于當分區管理工具出現異常時,調試之用
      

       

      三、 使用案例

      1. 把表加入到分區自動管理的procedure

      --下面是存儲過程的參數
      CREATE PROCEDURE `proc_main_partition_config`(
      OUT v_MSG varchar(400),             --@v_MSG,只是一個變量會輸出配置的結果或報錯,保持默認即可
      IN v_username varchar(100),          --保持默認即可
      IN v_schema_name varchar(100),       --database
      IN v_table_name varchar(100),        --分區表
      IN v_part_column varchar(50),       --分區鍵,該自動分區管理procedure只支持單列分區
      IN v_policy varchar(50),            --分區策略,分區類型只可以為YEAR, MONTH, PERIOD, WEEK, DAY,數字
      IN v_valid_flag  tinyint(4),        --這個是標志位,參數只能為1,2,3,4, 1 加刪,2不加不刪,3,只加不刪,4 只刪不加
      IN v_keep_offset int(4),            --保留的分區數量,最少會保留3個分區
      IN v_add_offset int(4),             --添加分區的數量
      IN v_ifexist ENUM('true','false')   --一般使用false,當要添加的表如果之前已有配置,如果需要重新配置,則該值置為true
      )
      
      #常規案例
      call dbamon.proc_main_partition_config (@v_MSG,current_user(),'庫名','表名','分區鍵','分區規則',1,保留分區數,預添加分區數,'false');
      

      2. 該分區管理工具使用的約束與限制

      1)該分區管理工具只支持分區鍵為單鍵值的分區方式,且分區鍵的類型如下:'date','datetime','time','timestamp','year','tinyint','smallint','mediumint','int','integer','bigint'。
      對于分區類型為:period,意為把一個月分為上中下旬,如2月,把大于1月31號小于2月11號定位一個分區p1,把大于2月11號小于2月21號定位一個分區p2,把大于2月21號小于3月01號定位一個分區p2。
      2) 如果是range分區,分區策略如是按天、周、上中下旬、或月分區,則分區依據的表達式只支持to_days函數,如:PARTITION BY RANGE (to_days(order_dt))。不支持其他復雜的函數如month,extract等。
      3)如果是range分區,分區策略如是按年分區,則分區依據的表達式只支持year函數,
      如:PARTITION BY RANGE (year(order_dt)) 。
      4)因為要迎合順豐數據保留3+1的策略,分區自動刪分區的邏輯要求最少保留4個分區,如用戶業務要求數據不需要保留4個分區,則需要手動刪除。
      5)對與數字類型的分區支持,因為考慮到誤刪數據,則暫時不提供刪除分區的功能,
      如:PARTITION BY RANGE (store_id) 。
      6)在配置分區管理時,如果所配置的表不是分區表會報錯退出
      7)在分區維護job:dbamon.job_main_partition在維護某個表T1的過程中,如果正好A事務對該表做了操作而忘記提交,如此因為mysql無法在數據字典中獲取T1表的鎖信息,所以,該job會處于一直等到狀態。
      8)在分區維護job:dbamon.job_main_partition在維護某個表T1的過程中,對于大事務,或者有會話正在不斷操作表T1,則會每5s查找一次數據字典看該表是否空閑,如果5min內該表一直被其余事務使用,則放棄對該表的maintenance
      9)對于時間類型分區表的分區命名為:【p+分區表達式的值】,對于數字類型的分區,如果已有分區名不是p開始計算,則會以p1為分區名,持續添加。
      10)對于指定了maxvalue的分區表,在自動添加分區時如果檢測到max分區中有數據,那么就會導致分區遷移,當max分區大于1G時,因為遷移的時間較長,所以暫定不進行分區自動維護,需要手動處理。
      

      3. 配置案例

      #1range year

      CREATE TABLE `rangeyear_t1_kafka_consume_log` (
      `id` int(11) NOT NULL COMMENT 'id',
      `topic` varchar(255) DEFAULT NULL COMMENT '消息隊列名稱/主題名稱',
      `message` text COMMENT '消息內容',
      `status` varchar(255) DEFAULT NULL COMMENT '消息處理狀態,成功:1 ,失敗 0',
      `deal_time` int(11) DEFAULT NULL COMMENT '消息處理耗時時間(單位:毫秒)',
      `create_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00' COMMENT '消息接收時間',
      PRIMARY KEY (`id`,`create_time`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8
      PARTITION BY RANGE (YEAR(create_time))
      (PARTITION p2012 VALUES LESS THAN (2012) ENGINE = InnoDB,
      PARTITION p2013 VALUES LESS THAN (2013) ENGINE = InnoDB,
      PARTITION p2018 VALUES LESS THAN (2014) ENGINE = InnoDB,
      PARTITION p2017 VALUES LESS THAN (2015) ENGINE = InnoDB,
      PARTITION p2016 VALUES LESS THAN (2016) ENGINE = InnoDB);
      
      call dbamon.proc_main_partition_config (@v_MSG,current_user(),'sf592811','rangeyear_t1_kafka_consume_log','create_time','YEAR',1,5,10,'false');
      

       

      #2range month

      CREATE TABLE `rangemonth_tt_express_order` (
      `order_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵id',
      `cust_code` varchar(64) DEFAULT NULL COMMENT '月結賬號',
      `currency_code` varchar(32) DEFAULT NULL COMMENT '幣別',
      `order_dt` date NOT NULL COMMENT '訂單日期',
      `order_no` varchar(64) DEFAULT NULL COMMENT '訂單號碼',
      `waybill_no` varchar(64) DEFAULT NULL COMMENT '運單號碼',
      `sender_province` varchar(64) DEFAULT NULL COMMENT '寄件省份',
      `sender_city_code` varchar(32) DEFAULT NULL COMMENT '寄件城市代碼',
      `sender_name` varchar(64) DEFAULT NULL COMMENT '寄件聯系人',
      `sender_company` varchar(64) DEFAULT NULL COMMENT '寄件公司名稱',
      `sender_phone` varchar(100) DEFAULT NULL,
      `sender_tel` varchar(100) DEFAULT NULL,
      PRIMARY KEY (`order_id`,`order_dt`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='電商快遞訂單表'
      PARTITION BY RANGE (to_days(order_dt))
      (PARTITION p20170301 VALUES LESS THAN (736754) ENGINE = InnoDB,
      PARTITION p20170601 VALUES LESS THAN (736785) ENGINE = InnoDB,
      PARTITION p20170701 VALUES LESS THAN (736815) ENGINE = InnoDB,
      PARTITION p20170801 VALUES LESS THAN (736846) ENGINE = InnoDB,
      PARTITION p20170701_max VALUES LESS THAN MAXVALUE ENGINE = InnoDB);
      
      call dbamon.proc_main_partition_config (@v_MSG,current_user(),'sf592811','rangemonth_tt_express_order','order_dt','MONTH',1,10,20,'false');
      

       

      #3range nofunc

      CREATE TABLE `nofunc_repo_flowtask_prop` (
      `id` bigint(20) NOT NULL AUTO_INCREMENT,
      `task_id` bigint(20) NOT NULL,
      `step_id` bigint(20) NOT NULL DEFAULT '0',
      `prop_id` varchar(100) NOT NULL,
      `prop_name` varchar(100) NOT NULL,
      `prop_value` varchar(100) DEFAULT NULL,
      `prop_value_name` varchar(100) DEFAULT NULL COMMENT '值的顯示名',
      `prop_def_id` bigint(10) DEFAULT NULL COMMENT '關聯flow_prop_template_def表',
      `component_id` int(4) DEFAULT NULL COMMENT '流程組件ID',
      PRIMARY KEY (`id`,`task_id`),
      KEY `prop_index` (`prop_id`,`prop_value`),
      KEY `indexFlowtaskPropTaskId` (`task_id`)
      ) ENGINE=InnoDB AUTO_INCREMENT=1522469 DEFAULT CHARSET=utf8
      PARTITION BY RANGE (task_id)
      (PARTITION p1 VALUES LESS THAN (100000) ENGINE = InnoDB,
      PARTITION p2 VALUES LESS THAN (200000) ENGINE = InnoDB,
      PARTITION p_30000 VALUES LESS THAN (300000) ENGINE = InnoDB);
      
      call dbamon.proc_main_partition_config (@v_MSG,current_user(),'sf592811','nofunc_repo_flowtask_prop','task_id','100000',1,10,20,'false');
      

       

      #4rangeperiod

      CREATE TABLE `rangeperiod_tt_express_order` (
      `order_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵id',
      `cust_code` varchar(64) DEFAULT NULL COMMENT '月結賬號',
      `currency_code` varchar(32) DEFAULT NULL COMMENT '幣別',
      `order_dt` date NOT NULL COMMENT '訂單日期',
      `order_no` varchar(64) DEFAULT NULL COMMENT '訂單號碼',
      `waybill_no` varchar(64) DEFAULT NULL COMMENT '運單號碼',
      `sender_province` varchar(64) DEFAULT NULL COMMENT '寄件省份',
      `sender_city_code` varchar(32) DEFAULT NULL COMMENT '寄件城市代碼',
      `sender_name` varchar(64) DEFAULT NULL COMMENT '寄件聯系人',
      `sender_company` varchar(64) DEFAULT NULL COMMENT '寄件公司名稱',
      `sender_phone` varchar(100) DEFAULT NULL,
      `sender_tel` varchar(100) DEFAULT NULL,
      PRIMARY KEY (`order_id`,`order_dt`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='電商快遞訂單表'
      PARTITION BY RANGE (to_days(order_dt))
      (PARTITION p20170311 VALUES LESS THAN (736764) ENGINE = InnoDB,
      PARTITION p20170621 VALUES LESS THAN (736774) ENGINE = InnoDB,
      PARTITION p20170701 VALUES LESS THAN (736785) ENGINE = InnoDB,
      PARTITION p20170411 VALUES LESS THAN (736795) ENGINE = InnoDB,
      PARTITION p20170421 VALUES LESS THAN (736805) ENGINE = InnoDB,
      PARTITION p20170501 VALUES LESS THAN (736815) ENGINE = InnoDB);
      
      call dbamon.proc_main_partition_config (@v_MSG,current_user(),'sf592811','rangeperiod_tt_express_order','order_dt','PERIOD',1,10,20,'false');
      

      #5rangeday

      CREATE TABLE `rangeday_tt_express_order1` (
      `order_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵id',
      `cust_code` varchar(64) DEFAULT NULL COMMENT '月結賬號',
      `currency_code` varchar(32) DEFAULT NULL COMMENT '幣別',
      `order_dt` date NOT NULL COMMENT '訂單日期',
      PRIMARY KEY (`order_id`,`order_dt`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='電商快遞訂單表'
      PARTITION BY RANGE (to_days(order_dt))
      (PARTITION p20170519 VALUES LESS THAN (736833) ENGINE = InnoDB,
      PARTITION p20170520 VALUES LESS THAN (736834) ENGINE = InnoDB,
      PARTITION p20170521 VALUES LESS THAN (736835) ENGINE = InnoDB,
      PARTITION p20170727 VALUES LESS THAN (736836) ENGINE = InnoDB,
      PARTITION p20170728 VALUES LESS THAN (736837) ENGINE = InnoDB,
      PARTITION p20170524 VALUES LESS THAN MAXVALUE ENGINE = InnoDB);
      
      call dbamon.proc_main_partition_config (@v_MSG,current_user(),'sf592811','rangeday_tt_express_order1','order_dt','DAY',1,30,60,'false');
      

       

      #6rangeweek

      CREATE TABLE `rangeweek_tt_express_order` (
      `order_id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主鍵id',
      `cust_code` varchar(64) DEFAULT NULL COMMENT '月結賬號',
      `currency_code` varchar(32) DEFAULT NULL COMMENT '幣別',
      `order_dt` date NOT NULL COMMENT '訂單日期',
      PRIMARY KEY (`order_id`,`order_dt`)
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='電商快遞訂單表'
      PARTITION BY RANGE (to_days(order_dt))
      (PARTITION p20170409 VALUES LESS THAN (736793) ENGINE = InnoDB,
      PARTITION p20170625 VALUES LESS THAN (736800) ENGINE = InnoDB,
      PARTITION p20170618 VALUES LESS THAN (736807) ENGINE = InnoDB,
      PARTITION p20170430 VALUES LESS THAN (736814) ENGINE = InnoDB,
      PARTITION p20170507  VALUES LESS THAN MAXVALUE ENGINE = InnoDB);
      
      call dbamon.proc_main_partition_config (@v_MSG,current_user(),'sf592811','rangeweek_tt_express_order','order_dt','WEEK',1,10,20,'false');
      

       

      #7rangecolumnmonth

      CREATE TABLE `rangecolumnmonth_t1_tt_waybill_version` (
      `version_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '主鍵',
      `waybill_no` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '運單號',
      `order_no` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL,
      `waybill_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '訂單主鍵',
      `list_audited_version` int(2) DEFAULT NULL COMMENT '清單審核版本號',
      `ackList_audited_version` int(2) DEFAULT NULL COMMENT '回單審核版本號',
      `third_audited_version` int(2) DEFAULT NULL COMMENT '第三方單主鍵',
      `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
      `dispatch_type_code` varchar(3) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '分發類型(1:清單;2回單;3:第三方;6:清,第三方;7:回,第三方)',
      PRIMARY KEY (`version_id`,`create_time`),
      KEY `idx_waybill_version_id_order_no` (`waybill_id`,`order_no`) USING BTREE,
      KEY `idx_waybillNo_orderNo` (`order_no`,`waybill_no`) USING BTREE
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='運單審核版本號'
      PARTITION BY RANGE  COLUMNS(create_time)
      ( PARTITION p20170301 VALUES LESS THAN ('2017-03-01') ENGINE = InnoDB,
      PARTITION p20170801 VALUES LESS THAN ('2017-04-01') ENGINE = InnoDB,
      PARTITION p20170901 VALUES LESS THAN ('2017-05-01') ENGINE = InnoDB,
      PARTITION p20170601  VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB);
      
      call dbamon.proc_main_partition_config (@v_MSG,current_user(),'sf592811','rangecolumnmonth_t1_tt_waybill_version','create_time','MONTH',1,10,20,'false');
      

       

      #8rangecolumweek

      CREATE TABLE `rangecolumweek_t1_tt_waybill_version` (
      `version_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '主鍵',
      `waybill_no` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '運單號',
      `order_no` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL,
      `waybill_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '訂單主鍵',
      `list_audited_version` int(2) DEFAULT NULL COMMENT '清單審核版本號',
      `ackList_audited_version` int(2) DEFAULT NULL COMMENT '回單審核版本號',
      `third_audited_version` int(2) DEFAULT NULL COMMENT '第三方單主鍵',
      `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
      `dispatch_type_code` varchar(3) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '分發類型(1:清單;2回單;3:第三方;6:清,第三方;7:回,第三方)',
      PRIMARY KEY (`version_id`,`create_time`),
      KEY `idx_waybill_version_id_order_no` (`waybill_id`,`order_no`) USING BTREE,
      KEY `idx_waybillNo_orderNo` (`order_no`,`waybill_no`) USING BTREE
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='運單審核版本號'
      PARTITION BY RANGE  COLUMNS(create_time)
      (PARTITION p20170409 VALUES LESS THAN ('2017-04-09') ENGINE = InnoDB,
      PARTITION p20170416 VALUES LESS THAN ('2017-04-16') ENGINE = InnoDB,
      PARTITION p20171112 VALUES LESS THAN ('2017-04-23') ENGINE = InnoDB,
      PARTITION p20171119 VALUES LESS THAN ('2017-04-30') ENGINE = InnoDB,
      PARTITION p20170507 VALUES LESS THAN ('2017-05-07') ENGINE = InnoDB);
      
      call dbamon.proc_main_partition_config (@v_MSG,current_user(),'sf592811','rangecolumweek_t1_tt_waybill_version','create_time','WEEK',1,10,20,'false');
      

       

      #9rangecolumperiod

      CREATE TABLE `rangecolumperiod_t1_tt_waybill_version` (
      `version_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '主鍵',
      `waybill_no` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '運單號',
      `order_no` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL,
      `waybill_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '訂單主鍵',
      `list_audited_version` int(2) DEFAULT NULL COMMENT '清單審核版本號',
      `ackList_audited_version` int(2) DEFAULT NULL COMMENT '回單審核版本號',
      `third_audited_version` int(2) DEFAULT NULL COMMENT '第三方單主鍵',
      `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
      `dispatch_type_code` varchar(3) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '分發類型(1:清單;2回單;3:第三方;6:清,第三方;7:回,第三方)',
      PRIMARY KEY (`version_id`,`create_time`),
      KEY `idx_waybill_version_id_order_no` (`waybill_id`,`order_no`) USING BTREE,
      KEY `idx_waybillNo_orderNo` (`order_no`,`waybill_no`) USING BTREE
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='運單審核版本號'
      PARTITION BY RANGE  COLUMNS(create_time)
      (PARTITION p20170301 VALUES LESS THAN ('2017-03-01') ENGINE = InnoDB,
      PARTITION p20170311 VALUES LESS THAN ('2017-03-11') ENGINE = InnoDB,
      PARTITION p20171111 VALUES LESS THAN ('2017-03-21') ENGINE = InnoDB,
      PARTITION p20171121 VALUES LESS THAN ('2017-04-01') ENGINE = InnoDB,
      PARTITION p20170411 VALUES LESS THAN (MAXVALUE) ENGINE = InnoDB);
      
      call dbamon.proc_main_partition_config (@v_MSG,current_user(),'sf592811','rangecolumperiod_t1_tt_waybill_version','create_time','PERIOD',1,10,20,'false');
      

      #10rangecolumday

      CREATE TABLE `rangecolumday_t1_tt_waybill_version` (
      `version_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '主鍵',
      `waybill_no` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '運單號',
      `order_no` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL,
      `waybill_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '訂單主鍵',
      `list_audited_version` int(2) DEFAULT NULL COMMENT '清單審核版本號',
      `ackList_audited_version` int(2) DEFAULT NULL COMMENT '回單審核版本號',
      `third_audited_version` int(2) DEFAULT NULL COMMENT '第三方單主鍵',
      `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
      `dispatch_type_code` varchar(3) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '分發類型(1:清單;2回單;3:第三方;6:清,第三方;7:回,第三方)',
      PRIMARY KEY (`version_id`,`create_time`),
      KEY `idx_waybill_version_id_order_no` (`waybill_id`,`order_no`) USING BTREE,
      KEY `idx_waybillNo_orderNo` (`order_no`,`waybill_no`) USING BTREE
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='運單審核版本號'
      PARTITION BY RANGE  COLUMNS(create_time)
      (PARTITION p20170519 VALUES LESS THAN ('2017-05-19') ENGINE = InnoDB,
      PARTITION p20170520 VALUES LESS THAN ('2017-05-20') ENGINE = InnoDB,
      PARTITION p20170521 VALUES LESS THAN ('2017-05-21') ENGINE = InnoDB,
      PARTITION p20170803 VALUES LESS THAN ('2017-05-22') ENGINE = InnoDB,
      PARTITION p20170804 VALUES LESS THAN ('2017-05-23') ENGINE = InnoDB,
      PARTITION p20170524 VALUES LESS THAN ('2017-05-24') ENGINE = InnoDB);
      
      call dbamon.proc_main_partition_config (@v_MSG,current_user(),'sf592811','rangecolumday_t1_tt_waybill_version','create_time','DAY',1,30,60,'false');
      

      #11rangecolumday

      CREATE TABLE `rangecolumnyear_t1_tt_waybill_version1` (
      `version_id` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '主鍵',
      `waybill_no` varchar(32) COLLATE utf8mb4_bin NOT NULL COMMENT '運單號',
      `order_no` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL,
      `waybill_id` varchar(32) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '訂單主鍵',
      `list_audited_version` int(2) DEFAULT NULL COMMENT '清單審核版本號',
      `ackList_audited_version` int(2) DEFAULT NULL COMMENT '回單審核版本號',
      `third_audited_version` int(2) DEFAULT NULL COMMENT '第三方單主鍵',
      `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
      `dispatch_type_code` varchar(3) COLLATE utf8mb4_bin DEFAULT NULL COMMENT '分發類型(1:清單;2回單;3:第三方;6:清,第三方;7:回,第三方)',
      PRIMARY KEY (`version_id`,`create_time`),
      KEY `idx_waybill_version_id_order_no` (`waybill_id`,`order_no`) USING BTREE,
      KEY `idx_waybillNo_orderNo` (`order_no`,`waybill_no`) USING BTREE
      ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT='運單審核版本號'
      PARTITION BY RANGE  COLUMNS(create_time)
      (PARTITION p20170301 VALUES LESS THAN ('2013-01-01') ENGINE = InnoDB,
      PARTITION p20170801 VALUES LESS THAN ('2014-01-01') ENGINE = InnoDB,
      PARTITION p2020 VALUES LESS THAN ('2015-01-01') ENGINE = InnoDB,
      PARTITION p2018 VALUES LESS THAN ('2016-01-01') ENGINE = InnoDB,
      PARTITION p2019 VALUES LESS THAN ('2017-01-01') ENGINE = InnoDB);
      
      call dbamon.proc_main_partition_config (@v_MSG,current_user(),'sf592811','rangecolumnyear_t1_tt_waybill_version1','create_time','YEAR',1,5,10,'false');
      

       

       

      五、 錯誤排查

      select * from dbamon.main_partition_table_config;
      select * from dbamon.main_partition_table_config_log;
      select * from dbamon.main_partition_operation_log;
      select * from dbamon.main_partition_scheduler_log;
      posted @ 2021-01-06 16:28  C瘋仔  閱讀(3)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 东京热人妻无码一区二区av| 无码中文字幕人妻在线一区二区三区| 99久久久无码国产麻豆| 色综合中文字幕色综合激情| 国产一级av在线播放| 人人人澡人人肉久久精品| 精品乱码一区内射人妻无码| 丁香五月天综合缴情网| 一卡2卡三卡4卡免费网站| 吉安县| 国产偷拍自拍视频在线观看| 在线精品国产中文字幕| 武清区| 最新的国产成人精品2020| 成人欧美一区二区三区在线观看| 毛片在线看免费| 亚洲伊人久久精品影院| 国产女人叫床高潮大片| 亚洲精品一区二区三区在| 丰满大爆乳波霸奶| 日本欧美大码a在线观看| 成人免费av在线观看| 石门县| 日韩人妻久久精品一区二区| 国产福利社区一区二区| 国产成人精品视频不卡| 亚洲精品麻豆一二三区| 国产三级视频网站| 亚洲熟妇自偷自拍另类| 色悠悠国产在线视频一线| 亚洲国产成人精品无码区在线观看 | 久久亚洲AV成人网站玖玖| 人妻日韩人妻中文字幕| 国产精品人成在线观看免费 | 辉南县| 国产无遮挡又黄又爽不要vip软件 国产成人精品一区二区秒拍1o | 亚洲欧美日韩愉拍自拍美利坚| 亚洲av乱码久久亚洲精品| 他掀开裙子把舌头伸进去添视频| 国产精品亚洲综合色区丝瓜| 国产精品中文字幕二区|