我在共享主机上有一个网站,我希望有很多访问者。我不需要一个数据库来阅读(页面上显示的所有内容都是用PHP硬编码的)但是我想存储用户输入的数据,所以仅供写入。事实上,我之后只存储它以对其进行统计分析(在我的本地计算机上,下载后)。
所以我的两个问题:
MySQL是否可行?它可以在共享主机上运行,可以使用PHP / MySQL,因此我不能真正使用其他许多花哨的包,但是写入文件对于此目的会更好,这也是可能的。据我所知,在文件中添加一行对于大文件来说是一个相对复杂的操作。另一方面,同时连接到MySQL数据库的100多个用户可能也是一个巨大的负载,即使它只是用于进行一次廉价的INSERT查询。
如果MySQL是一个不错的选择,那么如何最好地配置表?目前我有一个InnoDB表,主键id
自动递增(当然是存储数据的列)。这是通用配置,所以可能有更优化的方法,因为我只需要写入表,而不是从中读取它?
编辑:我主要担心网站会在发布后立即传播,所以我希望用户能够在很短的时间内访问。当然,由于数据库过载,我不想丢失他们输入的数据。
答案 0 :(得分:3)
MySQL是一个非常合理的选择。可能比平面文件好得多,因为您说您希望以后聚合和分析这些数据。使用平面文件执行此操作可能需要很长时间,尤其是在文件很大的情况下。此外,RDBMS用于聚合和数据集操作。非常适合创建报告数据。
除了现有的行键之外,在表中放置您想要的任何数据列,以及某种标识符来跟踪用户。 IP地址是用户跟踪的合理选择,或者魔术cookie值可能起作用。它只是一张桌子,你不需要考虑太多。您可能希望在您经常过滤报告的列上添加非聚簇索引,例如: IP地址,访问日期等
我主要担心网站会在发布后立即传播,所以我希望用户能够在很短的时间内访问。当然,由于数据库过载,我不想丢失他们输入的数据。
如果适当的硬件支持,MySQL等RDBMS明确设计用于处理重负载。不要出汗。