1 llx126753 OP 每天的数据量比较大,这个没法集中处理数据 |
2 xiaohanqing 2016-12-27 18:39:00 +08:00 via Android 表引擎 |
![]() | 3 j717273419 2016-12-27 18:44:17 +08:00 那能不能在清理之后,调用碎片整理? |
![]() | 4 i4oolish 2016-12-27 18:58:16 +08:00 什么数据库, 什么存储引擎 |
![]() | 5 R18 2016-12-27 19:00:59 +08:00 via Android 分表?我们系统跑了两个月 200 多 G 数据 我给按天放的,就是为了以后删除方便 |
6 fds 2016-12-27 19:32:31 +08:00 别存数据库了,每天建个目录,以文件形式存储。既然可以随便删,想必也不需要数据库那么高的安全性。 |
7 mm163 2016-12-27 19:46:55 +08:00 新记录不要每次都 INSERT :创建新记录前先取一条 3 天前 create_time 值最小的记录,把该记录 UPDATE 成新记录(如果没有取到 3 天前的记录,则 INSERT )。 |
8 ty89 2016-12-27 19:49:30 +08:00 看到百度说三个字我就懒得正儿八经回复了 |
![]() | 9 est 2016-12-27 19:55:37 +08:00 没 commit ? isolation level 是啥? |
10 chenqh 2016-12-27 20:17:04 +08:00 关注。等大神回复 |
11 em70 2016-12-27 20:19:26 +08:00 每天建个表嘛 |
![]() | 12 akira 2016-12-27 20:43:01 +08:00 |
![]() | 13 msg7086 2016-12-28 02:25:19 +08:00 然而你重新写入的时候空间占用也不会变大啊。 删除不释放不是很正常么,要是一直释放,那硬盘不被你跑死啊。 |
![]() | 14 Livid MOD PRO 1. 确保开启了 InnoDB 的 file per table ,这样每个表是一个单独的文件,不会出现一个几百 G 甚至上 T 的巨大文件: https://dev.mysql.com/doc/refman/5.6/en/innodb-multiple-tablespaces.html 2. 这种类型的数据可以按天建表,这样如果需要删除的话,直接 DROP TABLE 即可。 |
![]() | 15 ragnaroks 2016-12-28 09:35:36 +08:00 按天分表+1,做个自动备份+删除脚本 |
![]() | 18 realpg PRO 你的数据库是什么类型的系统数据? 是否是直接网站的数据? 如果是直接网站的数据(比如一个 PHP 网站),可以这样 所有网页请求包含一个 gc.php 内容是连上数据库执行一个查询 delete from `XXXX` where expiredtime< 现在时间 limit 5; 来一次有效访问帮你删除 5 条过期数据 PV 大的话很快就帮你分散的删干净了,对整体影响不大 具体 limit 的数值根据访问量和数据量动态调优 也可根据逻辑不同,只在静态渲染类的操作上 include 这个 gc.php 访问量太大的话,可以先判断一个随机数是否小于 20 执行这个之类 |
![]() | 19 lytofb 2017-02-22 09:47:32 +08:00 一天建一个表,过 7 天删除 |