gpt4 book ai didi

php - 如果每次请求都使用 mysql Insert slow page 是否会变慢? PHP

转载 作者:太空宇宙 更新时间:2023-11-03 10:58:30 27 4
gpt4 key购买 nike

我有一个 MVC 框架,它有一个处理所有请求的 Request 类。我记录了数据库中的每个请求,请求日志表的列如下:

  1. ID(自增)
  2. 控制者
  3. 行动
  4. 参数(获取、发布、放置、删除)
  5. 参数(MVC 参数由斜杠“/”分隔)
  6. 请求方法(GET、POST、PUT、DELETE)
  7. 请求类型(HTML、JSON、XML)
  8. 是否请求 Ajax(真/假)
  9. 引荐网址
  10. 请求 URI
  11. 浏览器(用户代理浏览器)
  12. 浏览器版本
  13. 知识产权
  14. 平台
  15. 请求时间(日期时间)

现在我考虑一下,如果我有 100+ 在线用户,每个人每天发出大约 500+ 请求,我得到 100*500 =每天 50,000 行,每年大约 1800 万

现在 1-2 年后,如果我不清除日志,用户将他们的请求插入表中会不会更慢?

记录每个请求是不是个坏主意?

原因:我想记录每个请求的原因是为了检测某种 ​​DDOS 攻击,这样如果每 30 秒有超过 10 个请求,锁定帐户 20 分钟

最佳答案

显示的减速量应该主要取决于您在表上的索引。插入的每条记录都会导致该表的每个索引被更新,从而随着表的增长而变得越来越慢。

有多种方法可以长期保持性能,最简单的方法是将新数据写入 MySQL 内存表以进行插入和查询,然后使用 cronjob 将数据传输到永久表。

还有消息队列(ZeroMQ、RabbitMQ 等)或 NoSQL 数据库 (MongoDB)

关于php - 如果每次请求都使用 mysql Insert slow page 是否会变慢? PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18137226/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com