对于基于数据库的独特计数系统,哪种数据库结构更好?

时间:2012-01-17 22:56:07

标签: php database database-design database-schema counter

我想使用PHP为我的网站添加独特的点击计数器。因此,此计数器将为数据库中的每个页面保存访问者的IP。我对数据库结构有这样的想法: 1个表格(hits)和2个列(ippage_url)。所以我可以使用简单的SQL查询来获取distinc IP,但我担心性能。为每个页面获取独特的点击量是一种好方法吗?
在结论中,对于基于数据库的独特计数系统,哪种数据库结构更好?

编辑:
我也有第二个问题。在PHP文件中获取访问者的IP后,如果在数据库中控制不是这个IP,然后添加数据库或只添加所有访问者IP,然后获取相关页面的distinc IP以获得唯一命中数,是否更好?

提前致谢。

2 个答案:

答案 0 :(得分:2)

这个模式就足够了(尽管使用Redis或其他基于内存的数据存储将会更快,如果你可以将它添加到您的架构中)。

使用PHP的ip2long(存储IP地址之前)和long2ip(当您检索IP地址时)将IP地址存储在基本32中并将其作为IP地址字符串检索 - 这样可以更快的检索(整数在查询子句,组等比字符串更快)。

答案 1 :(得分:0)

我建议使用redis数据库,它提供了开箱即用的这项功能,速度非常快。虽然为此你需要维护这个额外的数据库。

很抱歉,我的答案不是直接回答您的问题,但如果您对其他技术持开放态度。