首页 > 解决方案 > MySQL:优化分区以加快请求

问题描述

我有存储加密交易活动的 MySQL 表,每对一个表。然而,这些表变得越来越重,并且请求一直在等待。

这是其中之一的格式:

    CREATE TABLE `aggtrade_bina_adabnb` (
      `exchange_code` varchar(16) NOT NULL,
      `symbol` varchar(16) NOT NULL,
      `aggtrade_id` bigint(20) NOT NULL,
      `price` decimal(16,8) NOT NULL,
      `quantity` decimal(16,8) NOT NULL,
      `first_breakdown_trade_id` bigint(20) NOT NULL,
      `last_breakdown_trade_id` bigint(20) NOT NULL,
      `trade_time` bigint(20) NOT NULL,
      `is_buyer_maker` tinyint(1) NOT NULL,
      `live_data` tinyint(1) DEFAULT 1
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
    PARTITION BY HASH (`aggtrade_id`)
    PARTITIONS 4;

当然,我知道我当前的分区非常糟糕。但是,我想知道是否有一种方法可以根据trade_time字段自动对该表进行分区,以便每个月都有一个分区,而不必在创建表时指定这些月份。

在此先感谢您的帮助。

标签: mysqloptimizationquery-performancepartition

解决方案


推荐阅读