1

私たちは oozie を実行していますが、ジョブが頻繁にスケジュールされているため、データベースが急速に拡大し、データベースの速度が低下しています。

そのため、レコードを頻繁にパージし始め、時間の経過とともにパージ (テーブルから * を削除) するとロックが発生し、アプリの速度が低下しました。

テーブルの start_time フィールドまたは end_time フィールドに基づいてテーブルをパーティション化するなどのオプションを検討し始めましたが、主キーではないキーで mysql テーブルをパーティション化できないことに気づき、行き止まりになりました。

サンプル表の説明

CREATE TABLE `WF_JOBS` (

  `id` varchar(255) NOT NULL,
  `app_name` varchar(255) DEFAULT NULL,
  `app_path` varchar(255) DEFAULT NULL,
  `conf` mediumtext,
  `group_name` varchar(255) DEFAULT NULL,
  `parent_id` varchar(255) DEFAULT NULL,
  `run` int(11) DEFAULT NULL,
  `user_name` varchar(255) DEFAULT NULL,
  `bean_type` varchar(31) DEFAULT NULL,
  `auth_token` text,
  `created_time` datetime DEFAULT NULL,
  `end_time` datetime DEFAULT NULL,
  `external_id` varchar(255) DEFAULT NULL,
  `last_modified_time` datetime DEFAULT NULL,
  `log_token` varchar(255) DEFAULT NULL,
  `proto_action_conf` text,
  `sla_xml` text,
  `start_time` datetime DEFAULT NULL,
  `status` varchar(255) DEFAULT NULL,
  `wf_instance` mediumblob,
  PRIMARY KEY (`id`),
  KEY `I_WF_JOBS_DTYPE` (`bean_type`),
  KEY `I_WF_JOBS_END_TIME` (`end_time`),
  KEY `I_WF_JOBS_EXTERNAL_ID` (`external_id`),
  KEY `I_WF_JOBS_LAST_MODIFIED_TIME` (`last_modified_time`),
  KEY `I_WF_JOBS_STATUS` (`status`)

) 

ロックを発生させずにテーブルをパージまたは削除する方法の手がかり、またはパーティションを直接削除できるように、キーを作成せずに mysql でテーブルを分割する方法はありますか

-ジャビル

4

0 に答える 0