我在一个共享主机上有一个网站,在那里我希望有很多访客。我不需要一个数据库来读取(页面上显示的所有内容都是用php硬编码的),但我希望存储用户输入的数据,因此只用于编写。事实上,我存储这个只是为了在下载之后(在本地计算机上)对它进行统计分析。
所以我有两个问题:
mysql是一个可行的选择吗?它是在共享主机上运行的,php/mysql是可用的,所以我不能真正使用很多其他花哨的软件包,但是如果这样写一个文件会更好,那也是可能的。据我所知,在文件中添加一行对于大型文件来说是一个相对复杂的操作。另一方面,同时连接到mysql数据库的100多个用户可能也是一个巨大的负载,即使这只是为了执行一个廉价的insert查询。
如果mysql是一个不错的选项,那么应该如何配置表呢?目前我有一个innodb表,主键是自动递增的(当然是存储数据的列旁边)。这是通用配置,所以可能有更优化的方法,因为我只需要写到表中,而不需要从表中读取?
编辑:我主要担心网站一发布就会走红,所以我希望用户能在很短的时间内访问。当然,我不想因为数据库过载而丢失他们输入的数据。

最佳答案

mysql是一个非常合理的选择。可能比平面文件好得多,因为您说您希望稍后聚合和分析这些数据。使用平面文件执行此操作可能需要很长时间,尤其是文件较大时。此外,rdbms用于聚合和数据集操作。非常适合创建报表数据。
将您想要的任何数据列放在表中,以及某种类型的标识符来跟踪用户,除了现有的行密钥之外。IP地址是用户跟踪的逻辑选择,或者magic cookie值可能会起作用。这只是一张桌子,你不必想太多。您可能需要在经常为报表筛选的列上添加非聚集索引,例如IP地址、访问日期等。
我主要担心这个网站一发布就会走红,所以我希望用户能在很短的时间内访问。当然,我不想因为数据库过载而丢失他们输入的数据。
像mysql这样的rdbms被显式地设计为处理繁重的负载,假设有适当的硬件支持。别担心。

10-07 22:42