php - 如何在 Laravel 5.4 中以优化的方式保存用户访问
问题描述
我将我的用户访问统计信息保存在 mySQL 数据库中:
- 访问ID
- 访问页面
- 访问路线
- visit_referrer
- 访问IP地址
- 访问设备
- created_at
- 更新时间
我的问题是我的 mySQL 数据库会处理每天 100,0000 次这样的访问量吗?这样保存5年能出问题吗?(每天100000)
如果答案是肯定的,那么优化的方法是什么(我不想清空我的访问表)
解决方案
首先,您可能需要重新考虑 MySQL。如果您想继续留在 RDB 中,您可能需要研究 postgres,并且通过一些优化,它可以处理行数。另一方面,如果你打开切换到 NoSQL,那么我推荐弹性搜索。它可以很好地处理这种数据。
如果你选择留在 postgres/mysql。visitor
然后,您可以通过将数据(唯一用户)与数据分开来重构架构,visited_pages
如下所示:
访客
- id
- ip_address
- device
- first_visit (created_at)
- latest_visit (updated_at)
访问页面
- id
- page_title
- page_route
- first_visit (created_at)
- latest_visit (updated_at)
page_visit
- id
- visitor_id
- page_id
- visited_at (created_at) //no need for updated at
最大的表将是最后一个,它不会包含太多数据。并且您不必每次都使用相同的数据,例如路线、页面标题、IP 地址。
推荐阅读
- javascript - 故事书 4 和 webpack.config?
- hibernate - 一对一与多对一(单向)
- c# - IAuthorizationFilter 删除 cookie
- model-binding - ASP.NET 模型绑定器不填充模型值
- python - 合并两个 QuerySet 或重新排序一个 QS,以便每个第 n 个元素都来自第二个元素
- ios - 后面的标签栏重叠视图
- centos - 如何在 centOs 服务器上查看单个 html 页面
- php - jQuery Datatables 服务器端处理无结果返回
- angular - 接口的最佳实践
- java - Can I call a .java file from a .html file with href or something else without using javascript in-between