如何限制每个用户在mysql表中有1000条记录

如何限制每个用户在mysql表中有1000条记录,mysql,sql,architecture,Mysql,Sql,Architecture,我有1000000个用户,我想存储用户最新的1000个历史记录 所以我想将数据限制为1000000*1000,我将创建多个具有用户id的表 我有更多的用户,我不想在后台扫描每个用户的记录,我觉得这很难看 有一些特点: 该表是存储用户的历史记录 限制每个用户在表中只有1000行 如果用户的新数据需要插入行,则放弃最旧的行 始终为1000,允许非实时 1000000用户 它很好交际,插入速度必须快 创建一个触发器,该触发器将在插入新行时截断最旧的行 或者您可以通过编程来完成这项工作。有什么问题?

我有1000000个用户,我想存储用户最新的1000个历史记录

所以我想将数据限制为1000000*1000,我将创建多个具有用户id的表

我有更多的用户,我不想在后台扫描每个用户的记录,我觉得这很难看

有一些特点:

  • 该表是存储用户的历史记录
  • 限制每个用户在表中只有1000行
  • 如果用户的新数据需要插入行,则放弃最旧的行
  • 始终为1000,允许非实时
  • 1000000用户
  • 它很好交际,插入速度必须快

创建一个触发器,该触发器将在插入新行时截断最旧的行


或者您可以通过编程来完成这项工作。有什么问题?你试过什么?你不能期望人们在没有自己完成部分工作的情况下设计mysql表。所以不是一个“岗位要求和获取答案kthxbye”网站:)问题不是“设计表”,而是“如何限制”。我希望做这个逻辑快速和简单。谢谢你的编辑!我知道这一点,但这将是缓慢的。我必须“选择计数(*)来检查限制。嗯。。。实际上,没有一种方法可以定义具有这种自动行为的表。无论您选择使用触发器还是将其编程到应用程序中,都需要计算行数。如果您担心性能,也可以使用相同的触发器在单独的表中存储每个用户的行数,然后使用它而不是
COUNT(*)
谢谢,我认为这样做更好。