在MySQL中使用DELAY_KEY_WRITE:我应该使用它吗?我还有什么需要改变的吗?

我有一个日志表,其中存储了用户ID,日期/时间,表名,记录ID,查询类型(插入,更新,删除等)以及运行的完整SQL.这张桌子上有几个键,但是不需要立即更新.通常,该表用于检查是否存在问题(有人犯了错误或存在系统错误),或供人们查看他们所做的更改.但是通常这些操作不会在保存后立即完成,或者仅一周一次或每天一次.

像这样打开表上的DELAY_KEY_WRITE是否有用?

我还需要在MySQL上或其内部或添加到我的代码中启用其他功能吗?我当时是reading here,需要使用启动参数–myisam-recover.是这样吗

最佳答案
可能,但是为什么呢?如果此处的输入是由人们键入(如出现)生成的,则除非您使用上网本或手机作为数据库服务器,否则您将无法使1985年左右以后生产的机器过载.

如果您对性能的要求非常严格,可以考虑做这样的事情,那么建议您首先进行一些分析,以查看实际存在的问题.如果您不担心性能,那么寻找DELAY_KEY_WRITE的动机是什么?

关于您的评论的更多想法:

每分钟> 1000条记录每天大约有数百万条记录.人们将如何“审查”他们?
>每月大约需要千兆字节.您的保留政策将是什么?
>是否真的需要对日志进行索引甚至将其存储在表中?系统日志记录功能可能更合适吗?
>将信息记录在单独的位置(调试日志,查看队列,摘要表等)是否有帮助?
>您的系统不太可能以这种速率实际产生有意义的日志信息.您的负载估算有多现实,其中有多少是多余的/无用的?

相关文章

navicat查看某个表的所有字段的详细信息 navicat设计表只能一...
文章浏览阅读4.3k次。转载请把头部出处链接和尾部二维码一起...
文章浏览阅读488次。恢复步骤概要备份frm、ibd文件如果mysql...
文章浏览阅读225次。当MySQL单表记录数过大时,增删改查性能...
文章浏览阅读1.5k次。Mysql创建、删除用户MySql中添加用户,新...
MySQL是一种开源的关系型数据库管理系统,被广泛应用于各类应...