通过拆分,提高表的访问效率

纵向拆分:
纵向拆分是只按照应用访问的频度,将表中经常访问的字段和不经常访问的字段拆分成两个表,经常访问的字段尽量是定长的,这样可以有效的提高表的查询和更新的效率。

对于经常访问的字段,即搜索高频词;不经常访问的字段,搜索频率较低的词。对于一个表,这样拆分对于大数据的搜索,是很有必要的。如:对于一个拥有海量数据的产品网站,必定有一个搜索功能,目前的搜索,较为简单,可能就是就是这对产品名称,或者产品类型,或者产品货号搜索。作为复合搜索的条件并不多,但是对于一个产品的相关属性却很多,如此,首先要分析客户的搜索信息的习惯,一般而言,大家都会从一个“大”的,“较模糊”的方面进行搜索。如客户对某个舞蹈培训感兴趣,可能会在网上搜索相关信息,他(她)很可能搜索 “舞蹈培训”, “ 某某地 舞蹈培训”,“哪哪哪舞蹈培训”等,然后嗖的一下,会有一大堆的选项。。。。客户习惯也是从模糊到明确的一个过程。等等等,呵呵,可能扯远了。其实,就是客户一般会在比较大的方面进行搜索信息。(个人的拙见)。这里“大”的方面,就是较高的频词,敏感词。如此,将这些经常访问的关键字,单独放置一个数据表中,无疑可以有效提高查询效率。同时,针对什么样的网站,类型,着重点,以及客户习惯,对症下药,以符合民意的“搜索”,无疑也会给站点加彩。

横向拆分:

横向拆分是指按照应用的情况,有目的的将数据横向拆分成几个表或者通过分区分到多个分区中,这样可以有效的避免Myisam表的读取和更新导致的锁问题。

目前,我发现横向拆分站点也不少,我们公司有个网站就是这样的,大约有500万个产品,采用的是横向拆分的。由一个表,衍生为10个或者更多表,数据表的压力,也会减轻,无论搜索,还是更新,效率肯定会很高。

 


 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提高网站的高并发性能,提高开发效率及运营效率,主要按如下几个思路进行规划设计: 2.1.1负载均衡 1)四层交换负载均衡: 采用负载均衡器来实现硬件级的四层交换负载均衡,或采用LVS来实现软件的四层交换负载均衡。 2)通过第三方软件来实现负载均衡,同时实现页面请求的缓存。 通过Nginx实现反向代理服务器集群,同时搭建squid集群以作为静态页面和图片的缓存。 3)通过web服务器的配置来实现负载均衡 即通过apache或是Nginx 将客户请求均衡的分给tomcat1,tomcat2....去处理。 2.1.2WEB应用开发架构思路 1)应用开发实现MVC架构三层架构进行web应用开发 2)页面尽可能静态化以减少动态数据访问,如果是资讯类的网站可以考虑采用第三方开源的CMS系统来生成静态的内容页面。 3)采用Oscache实现页面缓存,采用Memcached实现数据缓存 4)采用独立的图片服务器集群来实现图片资源的存储及WEB请求 2.1.3数据存储的设计思路 1)数据库拆分,把生产数据库和查询数据库分离,对生产数据库采用RAC实现数据库的集群。 2)采用高效的网络文件共享策略,采用图片服务器来实现页面的图片存储。 2.1.4不同网络用户访问考虑 1)通过引入CDN来解决不同网络服务商的接入速度问题,一般只能解决静态页面的访问问题。 在不同运营商机房部署服务器,通过镜像技术来实现不同网络服务商的接入速度问题。
前台门户网站架构 设计方案 北京宽连十方数字技术有限公司 2010-7 目 录 1 设计思路 3 2 系统结构 3 3 网络规划及性能计算 3 3.1 网络架构 3 3.2 网络架构说明 4 3.2.1 采用双防火墙双交换机做网络冗余,保障平台服务 4 3.2.2 采用硬件设备负载均衡器,实现网络流量的负载均衡 4 3.3 系统测算 4 3.3.1 系统处理能力要求 4 3.3.2 业务处理能力要求 4 3.3.3 系统话务模型 4 3.4 配置核算 5 3.4.1 数据库服务器性能核算 5 3.4.2 WEB服务器集群性能核算 5 3.4.3 WEB服务器集群内存性能核算 5 3.4.4 网络带宽 5 4 性能模拟测试及性能推算 6 4.1 测试环境 6 4.2 测试结果 8 4.2.1 1个客户端模拟不同线和并发请求结果 8 4.2.2 10个客户端请求 8 4.3 结果分析 9 4.4 根据测试结果推算 9 4.5 设备清单 11 4.5.1 硬件设备配置清单 11 4.5.2 设备技术规格 12 4.6 平台扩容的建议 12 网站的性能瓶颈分析 网站的性能影响因素很多,下面主要从如下4个方面进行分析说明: 1) 网络负载 a) 公网负载 b) 内网负载 2) WEB应用服务器性能 a) CPU b) 存储,I/O访问 c) 内存 d) 并发TCP/IP连接数 3) 数据库服务器性能 a) 数据库参数配置 b) 服务器性能(CPU、内存、存储) c) 数据结构的合理性 4) 不同WEB应用的处理方式而对不同的性能瓶颈 a) 对于静态的网站: 静态的HTML页面严格地由标准的HTML标示语言构成,并不需要服务器端即时运 算生成。这意味着,对一个静态HTML文档发出访问请求后,服务器端只是简单地 将该文档传输到客户端。从服务器运行的那个时间片来看,这个传输过程仅仅占 用了很小的CPU资源。对于静态HTML的访问瓶颈为:网络带宽、磁盘I/O以及cach e(高速缓冲存储器)。 b) 对于动态页面 因为服务器解析动态页面必须在其传输到客户端前就通过服务器来进行解释, 这样就会给应用服务器添加额外的性能消耗,如果进一步要访问数据库,则会增 加数据库服务器的性能消耗,则动态页面还有额外的瓶颈:应用服务器的性能, 数据库服务器的性能。 系统架构设计 2.1 总体思路 为提高网站的高并发性能,提高开发效率及运营效率,主要按如下几个思路进行规划设 计: 2.1.1 负载均衡 1) 四层交换负载均衡: 采用负载均衡器来实现硬件级的四层交换负载均衡,或采用LVS来实现软件的 四层交换负载均衡。 2) 通过第三方软件来实现负载均衡,同时实现页面请求的缓存。 通过Nginx实现反向代理服务器集群,同时搭建squid集群以作为静态页面和 图片的缓存。 3) 通过web服务器的配置来实现负载均衡 即通过apache或是Nginx 将客户请求均衡的分给tomcat1,tomcat2....去处理。 2.1.2 WEB应用开发架构思路 1) 应用开发实现MVC架构三层架构进行web应用开发 2) 页面尽可能静态化以减少动态数据访问,如果是资讯类的网站可以考虑采用第三 方开源的CMS系统来生成静态的内容页面。 3) 采用Oscache实现页面缓存,采用Memcached实现数据缓存 4) 采用独立的图片服务器集群来实现图片资源的存储及WEB请求 2.1.3 数据存储的设计思路 1) 数据库拆分,把生产数据库和查询数据库分离,对生产数据库采用RAC实现数据库 的集群。 2) 采用高效的网络文件共享策略,采用图片服务器来实现页面的图片存储。 2.1.4 不同网络用户访问考虑 1) 通过引入CDN来解决不同网络服务商的接入速度问题,一般只能解决静态页面的 访问问题。 2) 在不同运营商机房部署服务器,通过镜像技术来实现不同网络服务商的接入速度 问题。 2.2 总体架构 2.2.1 网站的系统分层架构 2.2.2 网站的物理架构 2.2.3 网站的开发架构 2.2.4 网络拓扑结构 备注: 1) 采用双防火墙双交换机做网络冗余,保障平台服务 采用双防火墙通知接通2线路互联网接入,设备之间采用VRRP协议,在任何 一个防火墙、互联网发生故障后均可自动将流量切换到另一端,保证网站的正运 行,设备或网络恢复后,自动恢复。 采用双千兆交换机分别接在2台防火墙上,当某台设备或者网络链路发生故 障后,好设备自动接管已坏设备的工作,不影响网站的整体运行,根据业务及真 实服务器的数量,交换机可以随时增加。 2) 采用硬件设备负载均衡器,实现网络流量的负载均衡 使用硬件设备负载均衡器,将网络流量均衡的分担到WEB服务器集群各节点 服务器,保障平台服务器资源均衡的使用。 3) 采用代

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值