处理大量数据并发 *** 作可以采用如下几种方法:
1使用缓存:使用程序直接保存到内存中。或者使用缓存框架: 用一个特定的类型值来保存,以区别空数据和未缓存的两种状态。
2数据库优化:表结构优化;SQL语句优化,语法优化和处理逻辑优化;分区;分表;索引优化;使用存储过程代替直接 *** 作。
3分离活跃数据:可以分为活跃用户和不活跃用户。
4批量读取和延迟修改: 高并发情况可以将多个查询请求合并到一个。高并发且频繁修改的可以暂存缓存中。
5读写分离: 数据库服务器配置多个,配置主从数据库。写用主数据库,读用从数据库。
6分布式数据库: 将不同的表存放到不同的数据库中,然后再放到不同的服务器中。
7NoSql和Hadoop: NoSql,not only SQL。没有关系型数据库那么多限制,比较灵活高效。Hadoop,将一个表中的数据分层多块,保存到多个节点(分布式)。每一块数据都有多个节点保存(集群)。集群可以并行处理相同的数据,还可以保证数据的完整性。
:
大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。
参考资料:网页链接
一、PHP+MySql
优点:
1) MySql是一个快速、多线程、多用户的SQL数据库服务器。
2) MySql的核心程序采用完全的多线程编程。
3)MySql可运行在不同的 *** 作系统下。
4) MySql有一个非常灵活而且安全的权限和口令系统。
5) MySql支持ODBC for Windows。
6)MySql支持大型的数据库。
7) MySql拥有一个非常快速而且稳定的基于线程的内存分配系统,可以持续使用面不必担心其稳定性。
8) 强大的查询功能。
9)PHP为MySql提供了强力支持,PHP中提供了一整套的MySql函数,对MySql进行了全方位的支持。
缺点:
比较的难学;
MySQL不完全支持陌生的关键词;
MySQL也缺乏一些存储程序的功能;
使用缺省的ip端口,但是有时候这些ip也会被一些黑客闯入;
使用myisam配置,如果你不慎损坏数据库,结果可能会导致所有的数据丢失;
二、PHP+MsSql
优点:
上手容易; 兼容性良好; 利于构筑"敏捷性商务";
缺点:
只能在windows 上运行,没有丝毫的开放性, *** 作系统的系统的稳定对数据库是十分重要的。
并行实施和共存模型并不成熟。很难处理日益增多的用户数和数据卷。伸缩性有限;
安全性方面,没有获得任何安全证书;
客户端支持及应用模式 ,是C/S结构,只支持windows客户,可以用ADO, DAO,OLEDB,
ODBC连接;
不是免费的;
数据不容易恢复;
大型电子商务网站架构,摘抄7同一个网站的多语言该如何处理是好,使用配置文件然后cookie或url来判别===客户是自己公司,使用标准方法即可
8电子商务网站最多的就是商品的打折方式和积分的赠送了,这里要怎么设计才好(工厂模式)===采购成熟的规则引擎
9如果同一时间并发大量订单的话,如果确保一个订单的有效提交呢
==电子商务一般要使用MQ,推荐IBMMQ;使用MSMQ也可
第一点是数据库要设计好,要达到什么级别,你可能需要考虑哪些表需要拆分,哪些表的核心数据需要冗余,如果是mysql,还要考虑其他的问题,比如存储引擎。
新闻肯定是要生成纯静态页,对数据库压力就小很多,不过静态页也有管理上的不方便,更新删除添加都要对磁盘文件进行 *** 作
做一个自定义缓存层,对缓存逻辑进行控制,可以采用第三方缓存模块,如果使用net来做,可以层层缓存,页面缓存,数据缓存(memcache,不过在win下效率不高)
电子商务网站特点就是对事务的严格,需要数据库设计的时候要求高性能,也需要合适的索引,支持高并发,经常对产品表用户表等进行索引检查,是否有很多索引扫描和表扫描(即使是局部的,也要将“局部”控制到最小范围)
mssql语句对不需要事务的查询要附带上with(nolock),以利于并发更新。
有些功能模块不能按照想当然的方式开发,比如产品访问次数,切不可将这些更新非常频繁的字段置于核心表内,明确的做法是将其剥离开来还有就是切不可经常性将字段设计成bool类型,这样会给以后的扩展留出路,即使是男女这种字段,也建议采用tiny类型
其他还有就是在产品设计的时候充分考虑seo,网站目录结构清晰可读,而不是带着一串串的查询参数。
对安全要有整体的把握,最好全都是用存储过程,在项目上线前将数据库存储过程全部导出再查找貌似exec的语句,查找是否需要替换成sp_executesql。
另外,如果采用mssql,全文搜索直接用mssqlfte就可以,速度和精确度都还是可以的,最重要的是维护和管理开发很简单。
打折的处理可以按照电信的一次,二次批价功能,如果你做过电信方面的系统。
当然也可以设计得更简单的一些。静态的页面建议使用CDN加速,以解决网通和电信之间访问速度的问题;
数据的缓存方面建议考虑用memcache,另外也可以分别在表现层和数据层利用net中的现存缓存机制作业可;
简单执行的sql可以不用存储过程,存储过程会占用数据库服务器的处理时间,造成死锁;
mvc建议还是做些CMS的项目上应用,电子商城不是很适合,个人观点。url上可以做转义,使url显示更友好;
数据库建议建立分布数据库,这样可以转移查询和大访问量对数据库带来压力;
可以考虑单独放在一台服务器上;1三层架构
2使用手写sql,手写entity(生成也可),缓存反射绑定(不是缓存数据哦,缓存映射关系),要考虑网站的长期发展还是手写吧灵活性能也好
3没有这种问题,商业驱动的,纯购物就好了,千万别搞什么圈子,wiki
4纯net的mvc不建议,webform不搞viewstate,不搞服务端控件(除repeater)再加点mvc的思想已足够用了
5不需要缓存数据(除搜索产品部分),要考虑多台服务器的程序快速部署,config文件会很多,config要序列化缓存
6当然是先生成好了,参照jd吧,按业务每张对应几个不同大小的图
7据经验,电子商务网站仅靠中英双语来达到多语言是不靠谱的(文化用户习惯不是简单的语言切换),如果想真正运营英语的就要重新开发一个版本
8不搞模式
9负载均衡(web,db)+ssb异步处理数据
10你是业务类型的日志还是异常日志前台订单流程上异常日志不需要了,找个工具录个脚本不停的跑保证随时发现问题发邮件就可以了
11找第三方搜索组件类似endeca的
12负载均衡挺简单的,初期靠软件就可以,一切找第三方放cdn,前台网站用到ajax的地方很少,如果用的话jquery1,一个电子商务网站用户995%的行为时Find
2、对于商品检索部分,能不用数据库就不用数据库(网上切词等相关的开源平台很多)
3、分布式缓存(Memcached、Volecity),个人测试volecity3还是不错的
4、系统设计时必须要考虑可运营。从这个角度去设计系统
5、对于电子商务网站改动很频繁,必须考虑架构设计如何适应频繁的版本更新
6、必须设计一个好的单点登录系统。
7、建议能不用sqlserver就不用它。
8、对于大型电子商务网站来说,系统的I/O是起决定因素而不是CPU和内存。1项目划分是否会有问题,图中分别是实体层,数据访问接口层,数据访问层,业务逻辑接口层,业务逻辑,网站A,B,C
项目划分其实不重要,重要的的是你在写代码的时候是否能把代码合理的分到对应的项目里。
2数据访问层是要开发效率(NBear,Linq,Nh等),还是访问效率(直接使用sql等)是否可以先使用开发效率高的,等日后访问量大了,再重写并替换数据访问层
开发效率优先,访问量大了以后,我相信是有钱投到硬件上的,在你程序写的不是很烂的情况下,升级硬件远比优化程序节省成本。
3网站被切割成了多个子网站,有一些控件(如header,footer)是要共享的,如何跨网站项目共享这些控件呢
那就做成自定义控件啦。
4ms的mvc10也出来不少时间了,是否已经够成熟运用到项目中或者是网站后台使用webform的,前台使用mvc
推荐使用使用webform的,前台使用mvc,对于前台来说使用mvc能更好的提升性能,更方便的更换页面表现形式。后台界面相对稳定,用webform可以提高开发效率。
5网站数据的缓存是自己开发一个hashtable什么的来维护呢,还是使用Memcached
初期建议用hashtable,因为简单,将来升级到Memcached。
6缩略图的处理,我看有的网站是在上传的时候直接生成,有的是在>
直接生成缩略图的好处是节约性能。>
7同一个网站的多语言该如何处理是好,使用配置文件然后cookie或url来判别
多语言建议使用aspnet自带的资源文件的方式实现,当前语言保存在cookie里面。
8电子商务网站最多的就是商品的打折方式和积分的赠送了,这里要怎么设计才好(工厂模式)
规则引擎
9如果同一时间并发大量订单的话,如果确保一个订单的有效提交呢
使用MQ队列
10日志方面,log4net
log4net只能记录程序运行日志,主要目的是用来调试程序的,系统业务 *** 作日志还你是得自己建一个表来保存。
11电子商务的全文检索,这也是个头疼的问题
lucene,微软索引服务,sqlserver全文检索,方案很多的。
12负载均衡方面,有什么好的文章推荐码
可以看windows2003集群方面的文章1项目划分是否会有问题,图中分别是实体层,数据访问接口层,数据访问层,业务逻辑接口层,业务逻辑,网站A,B,C
目前我也是这样分的,不过当数据表结构有修改时,会带动其它层的联级修改,非常不方便,所以开发之前最好将数据库设计地完善一点。另外,当网站分成多个以后,其它项目生成的DLL文件要部署到每个网站的bin文件夹里,更新一次都要重新部署,这也是个挺烦人的事,当然可以将DLL部署到GAC里来解决这个问题,不过这样的话本地调试起来就不太方便了,因为项目一有改动,就要将生成的DLL重新拷贝到GAC里才能看到效果。
2数据访问层是要开发效率(NBear,Linq,Nh等),还是访问效率(直接使用sql等)是否可以先使用开发效率高的,等日后访问量大了,再重写并替换数据访问层
这个我也在考虑。目前我还没有采用ORM框架,都是在DAL里直接访问DB的。
3网站被切割成了多个子网站,有一些控件(如header,footer)是要共享的,如何跨网站项目共享这些控件呢
自定义控件。
4ms的mvc10也出来不少时间了,是否已经够成熟运用到项目中或者是网站后台使用webform的,前台使用mvc
正在学习这一块。
5网站数据的缓存是自己开发一个hashtable什么的来维护呢,还是使用Memcached
现在我用的比较多的是net自带的数据缓存。
6缩略图的处理,我看有的网站是在上传的时候直接生成,有的是在>
直接生成好,快一点。
7同一个网站的多语言该如何处理是好,使用配置文件然后cookie或url来判别
我没涉及到这一块,不过我觉得资源文件应该就是用来处理这个问题的。
8电子商务网站最多的就是商品的打折方式和积分的赠送了,这里要怎么设计才好(工厂模式)
这些都放在逻辑层好了。
9如果同一时间并发大量订单的话,如果确保一个订单的有效提交呢
MSMQ
10日志方面,log4net
目前我是自已写代码存在库里的。
11电子商务的全文检索,这也是个头疼的问题
用lucenenet分词建索引,再直接从索引库里搜索,又快又准。
12负载均衡方面,有什么好的文章推荐码
不清楚了。这样的设计要达到新蛋的效果肯定不可能的,新蛋少说几百台服务器,不同数据库之间的发布订阅链路都有几千条。有复杂的缓存,负载均衡机制。新蛋所有的通讯都是基于WCF的。另外对于这么大型的网站来说,数据库一刻都不停止,所以读写分离也很重要,因为你也不可能让数据库停下来进行备份。总归要做到新蛋这样的大型电子商务网站,靠你上面画的这点好像远远不够。
不过关于公共的header,footer,我不建议做成自定义控件,这个维护起来不方便,稍有变动就要发布dll,麻烦的。
如果你的header和footer不是很大的话,建议采用js+css的方式。然后加上压缩和cdn缓存,应该效率上能接受。
MS指的是微软Microsoft,SQL是结构化查询语言结合起来就是说:MS SQL是指微软的SQL Server数据库服务器,它是一个数据库平台,提供数据库的从服务器到终端的完整的解决方案,其中数据库服务器部分,是一个数据库管理系统,用于建立、使用和维护数据库。
通俗的总结一下:数据库就是一堆数据在那里,数据库管理系统就是一个软件去管那堆东西。
MSSQL和ACCESS都是Microsoft公司开发的可以用于ASP程序中的网站数据库,不过MSSQL比ACCESS功能强大,大型网站建议采用MSSQL数据库
以上就是关于如何处理大量数据并发 *** 作全部的内容,包括:如何处理大量数据并发 *** 作、php+mssql 和 php+mysql 优点缺点、电子商务网站一般架构有哪些等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)