不同类型的网站有不同的开发语言和不同的技术支持。
对于门户网站来说,存储过程的扩展比较困难,这种情况多发生在传统的C/S中,尤其是对于从OA系统转换过来的开发人员来说。低价网站不是一两台小型机运行一个数据库处理所有业务的模式,而是机海作战的模式。方便的横向扩展比时间和网络流量的预分析重要得多。
为了给以后图片上cdn做准备,最好从建站开始就把图片的域名分开,不要用主域名。很多网站都设置了cookie到domain.ltd如果图片也在这个域名下,很可能缓存会因为cookie而失效,而且会占用多余的流量。由于浏览器并发线程的限制,它还可能导致访问缓慢。
除了结构化数据,门户网站还经常存储其他数据,比如图片。这类数据数量众多,访问量大。典型的就是图片,从用户的头像到用户上传的照片,还会生成不同大小的缩略图。存储的分布几乎和数据库扩展一样困难。如果不使用专业存储,基本都是靠自己的NAS。这就涉及到结构了。以图片存储为例。图片非常容易产生热点。有些图片上传后就不再被浏览,有些可能一天被访问几十万次。此外,大量小文件的异步备份也很耗时。
几乎所有的操作最终都会落在数据库上,数据库是最难扩展的。对于mysql来说,哪些表用myisam,哪些表用innodb,都要在开发前确定。还应该确定复制策略和碎片化策略。在表方面,一般来说,myisam可以用于更新不多、不需要事务的表,innodb可以用于需要行锁和事务支持的表。Myisam的锁表不一定是性能低的根源,innodb也不一定全是行锁。具体请参考相关文档,熟悉发动机特性可以更好的使用。现代网络应用变得越来越复杂。我们在设计表结构的时候,往往会设计很多冗余。虽然不符合传统方式,但是为了速度还是值得的。在高要求的情况下,甚至要消除联合查询。编程时多注意数据一致性。
至于门户网站建设的复制策略,多主多从结构也最好从一开始就设计好。代码直接按照多主多从写。一些小技巧是用来避免复制延迟问题的,还需要解决多个数据库中的数据是否一致。可以自己写或者找现成的运维工具。
本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/87493.html
如有侵犯您的合法权益请发邮件951076433@qq.com联系删除