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 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 2016-12-29 00:16:32 +08:00
你的数据库是什么类型的系统数据?
是否是直接网站的数据? 如果是直接网站的数据(比如一个 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 天删除
|