zoukankan      html  css  js  c++  java
  • 七,mysql优化——表的垂直划分和水平划分

    1,表的水平划分

           如果一个表的记录数太多,比如成千上万条,而且需要经常检索,那么我们有必要化整为零。如果我拆成100个表,那么每个表只有10万条记录。当然需要数据在逻辑上可以划分。一个好的划分依据,有利于程序的简单实现,也可以充分利用水平分表的优势。比如系统界面上只提供按月查询的功能,那么把表按月拆分成12个,每个查询只查询一个表就够了。如果非要按照地域来分,即时把表拆的再小,查询还是要联合所有表来查,还不如不拆了。所以一个好的拆分依据是最重要的。

            比如qq用户信息,单个user数据表存储太卡,可以做100个相同的user表,分别是user_0,user_1,............user_99,插入新用户时候,根据k=qqId/100,插入到user_k数据表。

    2,表的垂直划分

           有些表记录数不多,可能也就2、3万条,但是字段却很长,表占用空间很大,检索时需要执行大量I/O,严重降低了性能。这个时候需要把大的字段拆分到另一个表,并且该表与原表是一对一的关系。

           比如学生答题表,student数据表字段有id,name,score,email,question,answer。其中question和answer数据比较大,可以将这两个字段分离出去,形成一个单独的表,垂直划分后数据表如下,student数据表 id,name,score,email。paper数据表 id,stuId,question,answer。

  • 相关阅读:
    杨辉三角(hdu2032)——有待完善
    求平均成绩(hdu2023)
    绝对值排序(2020)——笔记待完善
    母牛的故事(hdu2018)——笔记待完善
    29.数据结构---栈,队列,数组,链表,哈希表
    16.PR将视频剪辑成任意形状
    28.集合1------List
    IDEA选中多行代码向左右移动缩进
    27.集合1------Collection
    IDEA显示单个文件结构
  • 原文地址:https://www.cnblogs.com/usa007lhy/p/5786713.html
Copyright © 2011-2022 走看看