mysql - 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
字段自动对该表进行分区,以便每个月都有一个分区,而不必在创建表时指定这些月份。
在此先感谢您的帮助。
解决方案
推荐阅读
- java - 无法使用本地 Maven 依赖项目中的类
- python-3.x - 为什么我从 python 调用 swagger APi 收到错误的请求?
- python - Python Pandas 计算值并创建摘要数据框
- python - 我可以为 Django 模板使用我自己的文件扩展名并仍然包含 django.contrib.auth.urls 吗?
- arrays - 我正在尝试使用选择排序算法在 python 中对这个数组进行排序,但它没有给出所需的输出。我究竟做错了什么?
- iis - IIS 限制对单独文件的访问
- reactjs - 为什么我需要使用 React Routes 在 Web 地址栏中按 Enter 键?
- git - git 在从 master 分支后将一些“旧”更改带到新分支
- python - 使用 scipy (curve_fit) 拟合包含总和的函数时出现问题
- java - 这 == 和 = 运算符在带有布尔表达式的 if 子句中一起使用时如何在 java 中工作?