在流量非常大的 LAMP 服务器上,我使用内存表来跟踪几个数据项作为计数器。它是这样实现的:
$query = "INSERT INTO daily_info_mem SET di_num=1 ,di_type=9, di_date = current_date(), di_sid= $sid_int ,di_name='user_counter' ON DUPLICATE KEY UPDATE di_num=di_num+1";
索引设置唯一的 di_type 和日期,因此如果该日期存在计数器,则 di_type 递增,如果不是该日期的行并且数据类型创建为 0 值。
每个页面视图都有几个这样的查询。这意味着几个mysql调用。
是否有可能将其尽可能优化为一个 mysql 调用,该调用将更新多个任意计数器,并且仍然保留在需要时创建行或增加值(如果存在)的想法?