zoukankan      html  css  js  c++  java
  • 通过拆分,提高表的访问效率

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

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

    横向拆分:

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

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


     

  • 相关阅读:
    2.Liunx 系统设置
    1.Liunx 文件管理
    Liunx 更新环境时用到的命令
    解决SSH Secure Shell 连接Liunx 有乱码情况。
    JMeter 性能测试基本过程及示例(4)
    在 macOS 中怎样获取当前文件夹的路径?
    Mac环境安装启动jmeter
    StringUtils工具类常用方法汇总1(判空、转换、移除、替换、反转)
    Json与Gson
    Quartz的基本使用之入门(2.3.0版本)
  • 原文地址:https://www.cnblogs.com/wuheng1991/p/5065640.html
Copyright © 2011-2022 走看看