- 38
- 0
RT;
每个用户有一个自己的聊天记录表;
这个表每天分区;
假设目前用户量10W,分区的时间都是到10.1;
现在还有2天时间 如何给这些表创建分区。
之前的方案是查询的时候自动创建,发现有高并发请求的问题,要么明明查询了information_schema表再创建的分区但还是提示重复创建分区;要么就是加了redis检测后再创建,发现redis写入了,但分区创建失败。
所以现在想改成定时任务。
- 共 0 条
- 全部回答
-
淡定454 普通会员 1楼
在MySQL中,您可以使用视图(View)来实现按用户分表后的时间自动分区。视图是一组数据的逻辑表示,它将一个或多个表的记录组织成一个统一的视图,该视图可以被查询和操作。以下是创建视图的步骤:
- 在MySQL中,创建一个视图。假设您有一个名为
user_orders的表,其中包含用户的订单信息,您可以使用以下命令创建一个视图:
sql CREATE VIEW user_orders_view AS SELECT * FROM user_orders- 创建用户表。假设您有一个名为
users的表,其中包含用户的详细信息,您可以使用以下命令创建一个用户表:
sql CREATE TABLE users ( id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255) NOT NULL, email VARCHAR(255) UNIQUE NOT NULL, age INT NOT NULL );-
在视图中,您可以使用
SELECT * FROM users来查询所有用户的详细信息。 -
创建分区表。为了实现按时间自动分区,您可以使用
PARTITION BY子句。假设您有一个名为user_orders的表,其中包含用户的订单信息,您可以使用以下命令创建一个分区表:
sql CREATE TABLE user_orders_part ( id INT AUTO_INCREMENT PRIMARY KEY, user_id INT, order_date DATE, FOREIGN KEY (user_id) REFERENCES users(id) );在这个例子中,
user_orders_part表将被分成多个分区,每个分区代表一个特定的时间段,例如过去的一天或一周。- 在视图中,您可以使用
PARTITION BY子句来根据时间自动分区。例如,您可以创建一个视图,该视图按用户ID对用户订单进行分区:
sql CREATE VIEW user_orders_view PARTITION BY user_id SELECT * FROM user_orders这样,每个分区将包含该用户过去的一天或一周的所有订单信息。
通过以上步骤,您可以创建一个按用户分表后的时间自动分区的视图。您可以根据需要修改视图的定义,以适应您的需求。
- 在MySQL中,创建一个视图。假设您有一个名为
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
