我正在创建一个带有通知系统的站点,在每个页面上加载AJAX以查询名为notifications
的数据库中的表。我不想显示一个有的通知数,而只显示类型。有4种类型。我目前有JSON只是获取类型列的UNIQUE,然后检查每种类型。
因为这将运行很多次,我想确保它已经过很好的优化。我猜测有一种方法是不对有人拥有的新通知运行此检查,直到他们点击通知栏(即直到他们有机会清除其中一个)。
我也想知道,如果你认为我会使每个类型成为一个主要#,然后将它们加在服务器端,这样就可以产生差异(正面或负面),而不是发送3个不同的int我发送3个素数的乘积,然后检查每种类型我只是mod(%)每种类型。我也想知道你是否认为它可能有所作为但是我不应该担心这么小的一个。我只是担心,因为它会在每个页面加载时运行,并且不希望用户感觉网站运行缓慢。
模式:
`notifications`
(`id`,`from`,`to`,`type`,`optional_message`)
答案 0 :(得分:1)
我也想知道,如果你认为我会使每个类型成为一个主要#,然后将它们加在服务器端,这样就可以产生差异(正面或负面),这样我就不会发送3个不同的整数发送3个素数的乘积,然后检查每种类型我只是mod(%)每种类型。我也想知道你是否认为它可能会有所作为,但是我不应该担心这么小。
FFS!对于某些系统,这种多路复用很重要 - 但它通常通过ORing位域实现。但是对于HTTP来说,这可以节省的带宽量非常小。不要打扰。
如果你真的需要优化它,那么这样做的方法就是缓存数据服务器端(MySQL将使用半智能算法为你做这件事)。
每个键有四个实体,使用物化视图对数据进行非规范化将不会产生性能优势,除非te数据非常倾斜。
答案 1 :(得分:0)
在这种情况下,最小化发送的数据量似乎很少,但考虑将来添加更多通知。如果使用位掩码,您可以拥有大量不同的通知,并仍然可以发送微小的数据。比较开发成本和收益,因为你非常关心这种优化,我会选择位掩码。
关于检查新通知的频率 - 如果用户有所有通知,显然您不再需要检查。我考虑的另一个优化是更改更新的间隔。这意味着如果用户有0个通知,我会检查即每5秒左右,当他有1个通知时,我会每10秒检查一次,等等。我不知道这个通知代表什么,但一般都收到了许多通知已经意味着获得另一种不同类型的通知的机会较低。你能提供更多细节吗,我不确定是否是这种情况?