iOS和Mysql事件

iOS和Mysql事件,ios,mysql,mysql-event,Ios,Mysql,Mysql Event,我正在开发一个连接到mysql后端的应用程序。snapchat有点简单,因为一旦当前用户从他们跟踪的用户那里获得图片并看到它们,他们就再也看不到这些图片了。然而,我不能仅仅从数据库中删除图片,上传图片的用户仍然需要看到它们。所以我想出了一个有趣的设计,我想知道它是好是坏 当上传pic时,我还将创建一个mysql事件,该事件将在pic上传一天后的同一时间运行。如果我有人上传图片,所有的时间事件都会被创建。这对mysql数据库有何影响。这甚至是可伸缩的吗?不,不可伸缩:删除单个记录很快,但是如果卷增

我正在开发一个连接到mysql后端的应用程序。snapchat有点简单,因为一旦当前用户从他们跟踪的用户那里获得图片并看到它们,他们就再也看不到这些图片了。然而,我不能仅仅从数据库中删除图片,上传图片的用户仍然需要看到它们。所以我想出了一个有趣的设计,我想知道它是好是坏


当上传pic时,我还将创建一个mysql事件,该事件将在pic上传一天后的同一时间运行。如果我有人上传图片,所有的时间事件都会被创建。这对mysql数据库有何影响。这甚至是可伸缩的吗?

不,不可伸缩:删除单个记录很快,但是如果卷增加,您会遇到麻烦。但是,您确实有一个使用分区的经典案例:

Create table your_images (insert_date DATE,some_image BLOB, some_owner INT)
ENGINE=InnoDB /* row_format=compressed key_block_size=4 */
PARTITION BY RANGE COLUMNS (insert_date) 
PARTITION p01 VALUES LESS THAN ('2015-07-12'),
PARTITION p02 VALUES LESS THAN ('2015-07-03'),
PARTITION p0x VALUES LESS THAN (ETC),
PARTITION p0n VALUES LESS THAN (MAXVALUE));
然后,您可以像往常一样插入,每天使用1个事件为所有数据删除一次分区,并使用删除旧分区的相同事件每天创建一次新分区

为了确保照片的寿命至少为24小时,分区清理必须延迟1天,以便在前天进行清理,而不是昨天


仍然需要在查询中使用日期过滤器从数据库中获取图像,以防止图像显示时间超过一天。

@Nobert感谢您的响应。你能进一步解释一下分区吗?如果用户上传照片的时间不一样,而且每张照片只能持续一天,那么如何对每张照片只持续一天的情况进行分区,确保每张照片在被删除前确实保留了整整一天?