PR

【8/4, 6】log_gold_changeパーティション化 #1019

wada opened this at 2021-08-02T16:14:38; closed

Description

opened by wada at 2021-08-02T16:14:38; updated 2025-03-10T10:33:04

概要

ログデータの調整 #877

既存テーブルのリセット

CREATE TABLE `log_gold_change__new` (
  `user_no` int(11) NOT NULL,
  `status` int(11) NOT NULL COMMENT '1:建築、2:造船、3:雇用、4:集金、5:プレゼントBOX、6:ミッションモンス、7:ミッションアイテム、8:カード合成、9:交易、15:建築キャンセル',
  `info` int(11) NOT NULL DEFAULT '0',
  `gold` int(11) NOT NULL,
  `after_gold` int(11) NOT NULL,
  `reg_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  KEY `user_no` (`user_no`,`status`),
  KEY `reg_date` (`reg_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='gold消費ログ';
RENAME TABLE log_gold_change TO log_gold_change__old, log_gold_change__new TO log_gold_change;

当日データの移動

cd jr-yamada/lib/exec
ENVIRONMENT=produnction PF=yamada php tool_insert_today_gold_change.php

ログ移動スクリプトの開発対応削除

#del_log_gold_change.inc
//TODO:ログテーブルの準備ができるまで開発環境だけで動かす
if ($_df['TEST'] != true) {
    exit;
}

ログテーブル作り直し

#テーブル作成
CREATE TABLE `log_gold_change` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `user_no` int(11) NOT NULL,
  `status` smallint(6) unsigned NOT NULL COMMENT '1:建築、2:造船、3:雇用、4:集金、5:プレゼントBOX、6:ミッションモンス、7:ミッションアイテム、8:カード合成、9:交易、15:建築キャンセル',
  `info` int(11) NOT NULL DEFAULT '0',
  `gold` int(11) NOT NULL,
  `after_gold` int(11) NOT NULL,
  `reg_date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`id`,`reg_date`),
  KEY `user_no` (`user_no`,`status`),
  KEY `reg_date` (`reg_date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='gold消費ログ'

#パーティション化
ALTER TABLE log_gold_change
PARTITION BY RANGE ( UNIX_TIMESTAMP(reg_date) ) (
  PARTITION p202108 VALUES LESS THAN ( UNIX_TIMESTAMP('2021-09-01 00:00:00') ),
  PARTITION p202109 VALUES LESS THAN ( UNIX_TIMESTAMP('2021-10-01 00:00:00') ),
  PARTITION p202110 VALUES LESS THAN ( UNIX_TIMESTAMP('2021-11-01 00:00:00') ),
  PARTITION p202111 VALUES LESS THAN ( UNIX_TIMESTAMP('2021-12-01 00:00:00') ),
  PARTITION p202112 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-01-01 00:00:00') ),
  PARTITION p202201 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-02-01 00:00:00') ),
  PARTITION p202202 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-03-01 00:00:00') ),
  PARTITION p202203 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-04-01 00:00:00') ),
  PARTITION p202204 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-05-01 00:00:00') ),
  PARTITION p202205 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-06-01 00:00:00') ),
  PARTITION p202206 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-07-01 00:00:00') ),
  PARTITION p202207 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-08-01 00:00:00') ),
  PARTITION p202208 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-09-01 00:00:00') ),
  PARTITION p202209 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-10-01 00:00:00') ),
  PARTITION p202210 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-11-01 00:00:00') ),
  PARTITION p202211 VALUES LESS THAN ( UNIX_TIMESTAMP('2022-12-01 00:00:00') ),
  PARTITION p202212 VALUES LESS THAN ( UNIX_TIMESTAMP('2023-01-01 00:00:00') ),
  PARTITION p202301 VALUES LESS THAN ( UNIX_TIMESTAMP('2023-02-01 00:00:00') ),
  PARTITION p202302 VALUES LESS THAN ( UNIX_TIMESTAMP('2023-03-01 00:00:00') ),
  PARTITION p202303 VALUES LESS THAN ( UNIX_TIMESTAMP('2023-04-01 00:00:00') ),
  PARTITION p202304 VALUES LESS THAN ( UNIX_TIMESTAMP('2023-05-01 00:00:00') ),
  PARTITION p202305 VALUES LESS THAN ( UNIX_TIMESTAMP('2023-06-01 00:00:00') ),
  PARTITION p202306 VALUES LESS THAN ( UNIX_TIMESTAMP('2023-07-01 00:00:00') ),
  PARTITION p202307 VALUES LESS THAN ( UNIX_TIMESTAMP('2023-08-01 00:00:00') ),
  PARTITION p202308 VALUES LESS THAN ( UNIX_TIMESTAMP('2023-09-01 00:00:00') ),
  PARTITION p202309 VALUES LESS THAN ( UNIX_TIMESTAMP('2023-10-01 00:00:00') ),
  PARTITION p202310 VALUES LESS THAN ( UNIX_TIMESTAMP('2023-11-01 00:00:00') ),
  PARTITION p202311 VALUES LESS THAN ( UNIX_TIMESTAMP('2023-12-01 00:00:00') ),
  PARTITION p202312 VALUES LESS THAN ( UNIX_TIMESTAMP('2024-01-01 00:00:00') ),
  PARTITION p202401 VALUES LESS THAN ( UNIX_TIMESTAMP('2024-02-01 00:00:00') ),
  PARTITION p202402 VALUES LESS THAN ( UNIX_TIMESTAMP('2024-03-01 00:00:00') ),
  PARTITION p202403 VALUES LESS THAN ( UNIX_TIMESTAMP('2024-04-01 00:00:00') ),
  PARTITION p202404 VALUES LESS THAN ( UNIX_TIMESTAMP('2024-05-01 00:00:00') ),
  PARTITION p202405 VALUES LESS THAN ( UNIX_TIMESTAMP('2024-06-01 00:00:00') ),
  PARTITION p202406 VALUES LESS THAN ( UNIX_TIMESTAMP('2024-07-01 00:00:00') ),
  PARTITION p202407 VALUES LESS THAN ( UNIX_TIMESTAMP('2024-08-01 00:00:00') ),
  PARTITION p202408 VALUES LESS THAN ( UNIX_TIMESTAMP('2024-09-01 00:00:00') ),
  PARTITION p202409 VALUES LESS THAN ( UNIX_TIMESTAMP('2024-10-01 00:00:00') ),
  PARTITION p202410 VALUES LESS THAN ( UNIX_TIMESTAMP('2024-11-01 00:00:00') ),
  PARTITION p202411 VALUES LESS THAN ( UNIX_TIMESTAMP('2024-12-01 00:00:00') ),
  PARTITION p202412 VALUES LESS THAN ( UNIX_TIMESTAMP('2025-01-01 00:00:00') )
);

#確認
SELECT TABLE_SCHEMA, TABLE_NAME, PARTITION_NAME, PARTITION_ORDINAL_POSITION, TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME='log_gold_change';
wada merge at 2021-08-04T10:23:21: 【8/4, 6】log_gold_changeパーティション化
wada close at 2021-08-04T10:23:21: Close

Commit range

base4aaf6b36b80dc1a3216b8338eb25bc45d8f50144
headca4eb3c3205bbb8e7e0fe3907c34603cae49a75a
base branchjolly/jr-web:master
head branchjolly/jr-web:log_gold_change

View commits

Commit details are loaded from Git when a dynamic archive server is running, or can be embedded with --include-commits.
Files changed3 filesView patch
statusfile
modifiedlib/exec/del_log_data.sh
modifiedlib/exec/del_log_gold_change.inc
addedlib/exec/tool_insert_today_gold_change.php
Patch body is stored as a separate file to keep this page lightweight.